{"event_info":{"picture":"https://img.loigiaihay.com/picture/event/2017/0125/6-0.jpg","title":"Chương 6: Chương trình con và lập trình có cấu trúc","display_type":1,"cat_id":155,"cat_title":"SGK Tin học lớp 11","alias":"chuong-6-chuong-trinh-con-va-lap-trinh-co-cau-truc","introtext":"","content_box_above":"","type":"event","page_builder":"","item_id":4782,"item_type":2},"list_articles":[{"article_id":25207,"cat_id":155,"publish_time":1486366680,"type_ex":1,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_1-0_2.jpg","title":"Tóm tắt lý thuyết chương 6","label":"Tóm tắt lý thuyết chương 6","alias":"tom-tat-ly-thuyet-chuong-6","introtext":"Chương trình con đóng vai trò quan trọng trong lập trình, đặc biệt trong lập trình có cấu trúc.","display_type":0,"article_type":1},{"article_id":25198,"cat_id":155,"publish_time":1486366680,"type_ex":1,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_171-0.jpg","title":"Lý thuyết: Chương trình con và phân loại trang 91 SGK Tin học 11","label":"Lý thuyết: Chương trình con và phân loại trang 91 SGK Tin học 11","alias":"ly-thuyet-chuong-trinh-con-va-phan-loai-trang-91-sgk-tin-hoc-11","introtext":"Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình.","display_type":0,"article_type":1},{"article_id":25199,"cat_id":155,"publish_time":1486366680,"type_ex":1,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_181-0.jpg","title":"Lý thuyết: Ví dụ về cách viết và sử dụng chương trình con trang 96 SGK Tin học 11","label":"Lý thuyết: Ví dụ về cách viết và sử dụng chương trình con trang 96 SGK Tin học 11","alias":"ly-thuyet-vi-du-ve-cach-viet-va-su-dung-chuong-trinh-con-trang-96-sgk-tin-hoc-11","introtext":"Đầu thủ tục gồm tên dành riêng procedure, tiếp theo là tên thủ tục. Danh sách tham số có thể có hoặc không.","display_type":0,"article_type":1},{"article_id":25200,"cat_id":155,"publish_time":1486366680,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_2-0_2.jpg","title":"Bài tập và thực hành 6 trang 103 SGK Tin học 11","label":"Bài tập và thực hành 6 trang 103 SGK Tin học 11","alias":"bai-tap-va-thuc-hanh-6-trang-103-sgk-tin-hoc-11","introtext":"Trước hết, hãy tìm hiểu việc xây dựng hai thủ tục sau đây:","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>1. Mục đích, yêu cầu</strong></p>\r\n<p>- Rèn luyện các thao tác xử lí xâu, kĩ năng tạo hiệu ứng chữ chạy trên màn hình;</p>\r\n<p>- Nâng cao kĩ năng viết, sử dụng chương trình con.</p>\r\n<p><strong>2. Nội dung</strong></p>\r\n<p class=\"Bodytext0\" align=\"left\">a) Trước hết, hãy tìm hiểu việc xây dựng hai thủ tục sau đây:</p>\r\n<p>- Thủ tục CatDan(s1,s2) nhận đầu vào là xâu s1 gồm không quá 79 kí tự, tạo xâu s2 thu được từ xâu sl bằng việc chuyển kí tự đầu tiên của nó xuống vị trí cuối cùng. Ví dự nếu s1 = ‘abcd’ thì s2= ‘bcda'</p>\r\n<p class=\"Bodytext80\">Type Str79= string[79];</p>\r\n<p class=\"Bodytext80\">Procedure CatDan (s1: Str79; var s2 : Str79) ;</p>\r\n<p class=\"Bodytext80\">Begin</p>\r\n<p class=\"Bodytext80\">S2:= copy(s1,2,length(s1)-1)+s1 [1];</p>\r\n<p class=\"Bodytext80\">End;</p>\r\n<p>- Thủ tục CanGiua(s) nhận đầu vào là xâu s gồm không quá 79 kí tự, bổ sung vào đầu s một số dấu cách để khi đưa ra màn hình xâu kí tự trong s ban đầu được căn giữa dòng gồm 80 kí tự.</p>\r\n<p class=\"Bodytext80\">Procedure CanGiua(var s: Str79);</p>\r\n<p class=\"Bodytext80\">Var i, n: integer;</p>\r\n<p class=\"Bodytext270\" align=\"left\">Begin</p>\r\n<p>n:= length(s);</p>\r\n<p>n:= (80-n) div 2;</p>\r\n<p>for i:= 1 to n do s:= ' ' + s;</p>\r\n<p>end;</p>\r\n<p class=\"Bodytext0\">b) Theo dõi cách sử dụng hai thủ tục trên, ta có thể viết chương trình sau đây để nhập một xâu kí tự từ bàn phím và đưa xâu đó ra màn hình có dạng dòng chữ chạy giữa màn hình văn bản 25x80.</p>\r\n<p class=\"Bodytext80\">uses crt;</p>\r\n<p class=\"Bodytext80\">type str7 9 string [79];</p>\r\n<p class=\"Bodytext80\">var s1,s2 : Str79;</p>\r\n<p>stop: boolean; procedure CatDan(si: Str79; var s2: Str79);</p>\r\n<p>begin</p>\r\n<p class=\"Bodytext80\">s2:= copy(s1,2,length(s1)-1)+sl[1];</p>\r\n<p class=\"Bodytext80\">end</p>\r\n<p class=\"Bodytext80\">procedure CanGiua(var s: Str79);</p>\r\n<p class=\"Bodytext80\">var i, n: integer;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">n := length (s) ,</p>\r\n<p class=\"Bodytext80\">n := (80-n)div 2;</p>\r\n<p class=\"Bodytext80\">for i:= 1 to n do s:=' '+s;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">clrscr;</p>\r\n<p class=\"Bodytext80\">write ( Nhap xau s1:');</p>\r\n<p class=\"Bodytext80\">readln(s1);</p>\r\n<p class=\"Bodytext80\">CanGiua(s1) ; clrscr;</p>\r\n<p class=\"Bodytext270\" align=\"left\">while Not(stop) do</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext80\">gotoxy(1,12); (*chuyen con tro den dau dong 12*)</p>\r\n<p class=\"Bodytext80\">write (s1);</p>\r\n<p class=\"Bodytext80\">delay(500); (*Dung 500 miligiay*)</p>\r\n<p class=\"Bodytext80\">Catean (s1, s2 )</p>\r\n<p class=\"Bodytext80\">s1 : =s2;</p>\r\n<p class=\"Bodytext80\">stop:=keypresGed; (*nhan mot phim bat ky de ket thuc*)</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">readln</p>\r\n<p class=\"Bodytext80\">End.</p>\r\n<div class=\"WordSection1\">\r\n<p class=\"Bodytext0\" align=\"left\">Hãy chạy thử chương trình trên với dòng chữ</p>\r\n<p class=\"Bodytext80\">\" ...Mung nghin nam Thang Long — Ha Noi!...'</p>\r\n<p class=\"Bodytext0\">c) Hãy viết thủ tục Chuchay(s, dong) nhận đầu vào là xâu s gồm không quá 79 kí tự và biến nguyên dong, đưa ra xâu s có dạng chữ chạy ở dòng dong. Viết và chạy chương trình có sử dụng thủ tục này.</p>\r\n<p class=\"Bodytext0\" style=\"text-align: right;\"> <strong>Loigiaihay.com</strong></p>\r\n</div>"},{"article_id":25201,"cat_id":155,"publish_time":1486366680,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_4-0_1.jpg","title":"Hướng dẫn làm bài tập và thực hành 6 trang 103 SGK Tin học 11","label":"Hướng dẫn làm bài tập và thực hành 6 trang 103 SGK Tin học 11","alias":"huong-dan-lam-bai-tap-va-thuc-hanh-6-trang-103-sgk-tin-hoc-11","introtext":"Hai thủ tục CatDan(s1,s2) và CanGiua(s) sẽ được dùng trong một chương trình để làm một dòng chữ chạy trên 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><strong>1. Mục đích, yêu cầu</strong></p>\r\n<p>- Rèn luyện các thao tác xử lí xâu, kĩ năng tạo hiệu ứng chữ chạy trên màn hình;</p>\r\n<p>- Nâng cao kĩ năng viết, sử dụng chương trình con.</p>\r\n<p><strong>2. Nội dung</strong></p>\r\n<p class=\"Bodytext0\">a) Hai thủ tục CatDan(s1,s2) và CanGiua(s) sẽ được dùng trong một chương trình để làm một dòng chữ chạy trên màn hình.</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Thủ tục CatDan(s1,s2) tạo nên xâu s2 từ xâu s1 nhận đầu vào sao cho s2 chính là trạng thái tiếp theo nếu hình dung s1 dịch sang trái một vị trí trong chuyển dịch vòng. Ta chỉ cần khai báo s1 là tham số giá trị, nhưng s2 phải khai báo là tham số biến.</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Thủ tục CanGiua(s) thêm một số dấu cách ở đầu một xâu s sao cho khi đưa ra màn hình dòng chữ của xâu s nằm giữa màn hình. Nếu khai báo s là tham số biến thì thủ tục này không có hiệu lực gì vì lệnh đưa s ra màn hình không nằm trong thủ tục này.</p>\r\n<p class=\"Bodytext0\">b) Chương trình làm một dòng chữ chạy trên màn hình. Nó sử dụng hai thủ tục mà chúng ta đã tìm hiểu ở câu a).</p>\r\n<p class=\"Bodytext60\" align=\"left\">Trong chương trình:</p>\r\n<p>- Thủ tục chuẩn gotoxy(x,y) chuyển con trỏ màn hình đến vị trí cột x dòng y trên màn hình;</p>\r\n<p>- Thủ tục delay(n) dừng trạng thái của màn hình trong n miligiây.</p>\r\n<p>- Hàm chuẩn keypressed không có tham số trả ra giá trị true khi có một phím được gõ.</p>\r\n<p class=\"Bodytext30\" align=\"left\">Khi chạy chương trình trên với dòng chữ</p>\r\n<p class=\"Bodytext270\" align=\"center\">'....Mung nghin nam Thang Long — Ha Noi!'</p>\r\n<div class=\"WordSection1\">\r\n<p class=\"Bodytext30\" align=\"left\">Kết quả chương trình có dạng như hình 72 dưới đây: </p>\r\n<p class=\"Bodytext30\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0125/72.jpg\" alt=\"\" width=\"450\" height=\"254\" /></p>\r\n<p class=\"Bodytext30\" align=\"left\">c) Để giải quyết bài toán tổng quát hơn (xâu chữ chạy ở dòng bất kỳ do chương trình chính quy định). Chúng ta cần lưu ý một số điểm sau:</p>\r\n<p>Nhiệm vụ của thủ tục Chuchay(s, dong) thực hiện, về cơ bản là nhiệm vụ mà chương trình ở câu b) đã làm, chỉ khác là chương trình ở câu b) luôn cho dòng chữ chạy ở dòng 12, còn thủ tục Chuchay(s, dong) có tham số dong quy định dòng nào trên màn hình xảy ra chuyển động của chữ. Từ ý nghĩa sử dụng tham số dong ta thấy chỉ cần khai báo nó là tham số giá trị. Như vậy, thủ tục Chuchay(s, dong) chỉ viết khác thân chương trình ờ câu b) vài chỗ. Chẳng hạn:</p>\r\n<div class=\"WordSection1\">\r\n<p class=\"Bodytext80\">procedure Chuchay(s1:Str79; dong:byte);</p>\r\n<p class=\"Bodytext80\">var s2 : Str79;</p>\r\n<p class=\"Bodytext80\"> stop:boolean;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">clrscr;</p>\r\n<p class=\"Bodytext80\">cangiua(s1);</p>\r\n<p class=\"Bodytext80\">clrscs;</p>\r\n<p class=\"Bodytext80\">stop: = false;</p>\r\n<p class=\"Bodytext80\">while not(stop) do</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">gotoxy(1,dong);</p>\r\n<p class=\"Bodytext80\">write(s1);</p>\r\n<p class=\"Bodytext80\">delay(100); (*Dung 100 miligiay*)</p>\r\n<p class=\"Bodytext80\">Catdan(s1,s2); s1:=s2 ;</p>\r\n<p class=\"Bodytext80\">stop:=keypressed;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext0\" align=\"left\"><span lang=\"VI\">-  </span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Thủ tục Chuchay (s, dong) có sử dụng hai thủ tục Catdan(s1,s2) và CanGiua(s). Do vậy, chương trình sử dụng thủ tục ChuChay vẫn có hai thủ tục đó trong phần khai báo chương trình con, phải đặt phía trên phần khai báo thủ tục ChuChay.</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">- Thân chương trình sử dụng thủ tục ChuChay đơn giản vì chỉ cần gọi thủ </span></span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">tục này làm việc. Tất nhiên trước đó cần xác định giá trị của xâu chữ cần chạy (xác định giá trị của biến s) và xác định chữ chạy ở dòng nào trên màn hình (xác định tham số thực sự cho tham số dong khi gọi thủ tục ChuChay). Chương trình chính có thêm biến dong thuộc kiểu </span></span><span class=\"BodytextTimesNewRoman\">byte </span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">(thực tế số nguyên dương không vượt quá số dòng của màn hình).</span></span></p>\r\n<p class=\"Bodytext60\" align=\"left\">Chương trình:</p>\r\n<p class=\"Bodytext80\">Program Xau_chu_chay_o_dong_bat_ky;</p>\r\n<p class=\"Bodytext80\">uses crt;</p>\r\n<p class=\"Bodytext80\">type Str79 = string[79];</p>\r\n<p class=\"Bodytext80\">var s1, s2: Str79;</p>\r\n<p class=\"Bodytext80\">dong: byte; stop: boolean;</p>\r\n<p class=\"Bodytext80\">procedure</p>\r\n<p class=\"Bodytext80\">CatDan(s1: Str79; var s2: Str79);</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">s2:= copy(s1,2,length(s1)-1)+s1[1] ;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">procedure</p>\r\n<p class=\"Bodytext80\">CanGiua(var s:str79);</p>\r\n<p class=\"Bodytext80\">var i, n: integer;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">n:= length(s);</p>\r\n<p class=\"Bodytext80\">n:= (80-n)div 2;</p>\r\n<p class=\"Bodytext80\">for i:=1 to n do s:=' '+S;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">procedure Chuchay(s1:Str79; dong:byte);</p>\r\n<p class=\"Bodytext80\">var s2: Str79;</p>\r\n<p class=\"Bodytext80\">stop: boolean;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">clrscr;</p>\r\n<p class=\"Bodytext80\">cangiua(s1);</p>\r\n<p class=\"Bodytext80\">clrscr;</p>\r\n<p class=\"Bodytext80\">stop:= false;</p>\r\n<p class=\"Bodytext80\">while not(stop) do</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">gotoxy(1,dong); write(s1);</p>\r\n<p class=\"Bodytext80\">delay(100); (*Dung 100 miligiay*)</p>\r\n<p class=\"Bodytext80\">Catdan(s1,s2); s1:=s2;</p>\r\n<p class=\"Bodytext80\">stop:=keypressed;</p>\r\n<p class=\"Bodytext770\">end ;</p>\r\n<p class=\"Bodytext770\">end.</p>\r\n<p class=\"Bodytext210\">clrscr;</p>\r\n<p class=\"Bodytext770\">vrite('Nhap xau chu:');</p>\r\n<p class=\"Bodytext770\">readln(s1);</p>\r\n<p class=\"Bodytext770\">vrite('Nhap đong xuat hien:');</p>\r\n<p class=\"Bodytext770\">readln(dong);</p>\r\n<p class=\"Bodytext80\">ChuChay(s1, dong);</p>\r\n<p class=\"Bodytext770\">readln</p>\r\n<p class=\"Bodytext80\">END</p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"FR\">Khi </span></span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">chạy chương trình trên, giả sử ta nhập vào xâu:</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">' Xin chao cac ban ! ' thì ngay sau đó sẽ xuất hiện một dòng yêu cầu ' Nhap dong Xuat hien:' của xâu vừa nhập vào (chẳng hạn, ở dòng 15)(Hình 73)</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><img src=\"https://img.loigiaihay.com/picture/2017/0125/73.jpg\" alt=\"\" width=\"450\" height=\"79\" /></span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Kết quả của chương trình sẽ là một dòng chữ chạy ở dòng 15 trên màn hình có dạng như hình 74 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/0125/74.jpg\" alt=\"\" width=\"450\" height=\"249\" /></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>\r\n</div>\r\n</div>"},{"article_id":25202,"cat_id":155,"publish_time":1486366680,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_2-0_3.jpg","title":"Bài tập và thực hành 7 trang 105 SGK Tin học 11","label":"Bài tập và thực hành 7 trang 105 SGK Tin học 11","alias":"bai-tap-va-thuc-hanh-7-trang-105-sgk-tin-hoc-11","introtext":"Tìm hiểu việc xây dựng các hàm và thủ tục thực hiện tính độ dài các cạnh, chu vi. diện tích, kiểm tra các tính đều, cân, vuông cỦa tam giác được trình bày dưới đây:","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\"><strong><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><strong>1. </strong>Mục đích, yêu cầu</span></span></strong></p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">- Nâng cao kĩ năng viết, sử dụng chương trình con.</span></span></p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">- Biết cách viết một chương trình có cấu trúc để giải một bài toán trên máy tính.</span></span></p>\r\n<p class=\"Bodytext30\" align=\"left\"><strong><span lang=\"VI\">2.  </span><span class=\"Bodytext3TimesNewRoman\"><span lang=\"VI\">Nội dung</span></span></strong></p>\r\n<p class=\"Bodytext0\" align=\"left\">a) <span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Tìm hiểu việc xây dựng các hàm và thủ tục thực hiện tính độ dài các cạnh, chu vi, diện tích, kiểm tra các tính đều, cân, vuông của tam giác được trình bày dưới đây:</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Giả thiết tam giác được xác định bởi tọa độ của ba đỉnh. Ta sử dụng kiểu bản ghi để mô tả một tam giác:</span></span></p>\r\n<p class=\"Bodytext80\">type</p>\r\n<p class=\"Bodytext80\">Diem = record</p>\r\n<p class=\"Bodytext830\">X, y: real;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">Tamgiac= record</p>\r\n<p class=\"Bodytext80\">A, B, c:Diem;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Ta xây dựng thủ tục và hàm:</p>\r\n<p><em>• </em>Thủ tục nhận dữ liệu vào là biến mô tả tam giác R và đầu ra là độ dài của ba cạnh a, b, c:</p>\r\n<p class=\"Bodytext270\" align=\"left\">Procedure Daicanh(var R: Tamgiac; var a, b, C:real);</p>\r\n<p><em>• </em>Hàm tính chu vi của tam giác R:</p>\r\n<p class=\"Bodytext270\" align=\"left\">function Chuvi(var R: Tamgiac): real;</p>\r\n<p><em>• </em>Hàm tính diện tích của tam giác R:</p>\r\n<p class=\"Bodytext270\" align=\"left\">function Dientich(var Rrtamgiac): real;</p>\r\n<p><em>• </em>Thủ tục nhận đầu vào là biến mô tả tam giác R và đầu ra là tính chất của tam giác (Deu hay Can hay Vuong)-,</p>\r\n<p>procedure Tinhchat(var R:Tamgiac;var <span lang=\"VI\">Deu, </span>Can, <span lang=\"VI\">Vuong: </span>Boolean);</p>\r\n<p><em>• </em>Thủ tục hiển thị tọa độ ba đỉnh tam giác lên màn hình:</p>\r\n<p class=\"Bodytext30\" align=\"left\"><span class=\"BodytextTimesNewRoman\">procedure </span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Hienthi(var R: tamgiac);</span></span></p>\r\n<p class=\"Bodytext30\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><em>• </em></span></span>Hàm tính khoảng cách giữa hai điểm P, Q:</p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\">function </span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Kh_cach(P, Q: Diem): Real;</span></span></p>\r\n<div class=\"WordSection1\">\r\n<p class=\"Bodytext0\" align=\"left\">b) Tìm hiểu chương trình nhập vào tọa độ ba đỉnh một tam giác và sử dụng các hàm, thủ tục được xây dựng dưới đây để khảo sát các tính chất của tam giác.</p>\r\n</div>\r\n<p class=\"Bodytext0\" align=\"left\">program tam_giac;</p>\r\n<p class=\"Bodytext0\" align=\"left\">uses crt</p>\r\n<p class=\"Bodytext0\" align=\"left\">const ep:= 1.0E-6;</p>\r\n<p class=\"Bodytext0\" align=\"left\">type</p>\r\n<p class=\"Bodytext80\">Diem = record</p>\r\n<p class=\"Bodytext80\">X, y: real;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">Tamgiac= record</p>\r\n<p class=\"Heading350\">A, B, C: Diem;</p>\r\n<p class=\"Heading350\">end;</p>\r\n<p class=\"Bodytext80\">var T: Tamgiac;</p>\r\n<p class=\"Bodytext80\">Dou, can, vuong: Boolean;</p>\r\n<p class=\"Bodytext80\">function Kh_cach(P<sub>(</sub>Q: Diem): Real; begin</p>\r\n<p class=\"Bodytext80\">Kh_cach: sqrt((P.x-Q.x)*(P<span>.</span>x-Q.x)+(P.y-Q.y)*(P.y-Q.y));</p>\r\n<p class=\"Bodytext80\">end ;</p>\r\n<p class=\"Bodytext80\">Procedure Daicanh(var R: Tamgiac; var a, b, c: real);</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">a:= Kh_cach(R.B, R.C),</p>\r\n<p class=\"Bodytext80\">b:= Kh_cach(R.A, R.C);</p>\r\n<p class=\"Bodytext80\">c:= Kh_cach(R.A,R.B) ;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">functio-n Chuvi (var R: Tamgiac) : real;</p>\r\n<p class=\"Bodytext80\">var a, b, c: real;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">Daicanh(R, a, b, c) ;</p>\r\n<p>ChuVi:= a+b+c;</p>\r\n<p>end;</p>\r\n<p class=\"Bodytext80\">functioin Dientich(var R: tamgiac) : real;</p>\r\n<p class=\"Bodytext80\">var a, b, c, p: real;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">Daicanh(R<sub>/</sub> a, b, c) ;</p>\r\n<p class=\"Bodytext80\">p:= (a+b+c)/2;</p>\r\n<p class=\"Bodytext80\">Dienntich: = sqrt (p* (p-a) * (p-b) * (p-c))</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">procedure Hienthi (var R: tamgiac) ;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">writeln ('Toa do 3 dinh cua tam giac la:');</p>\r\n<p class=\"Bodytext80\">writeln('Dinh A(',R.A.x:0:3,',',R.A.y:0:3,')');</p>\r\n<p class=\"Bodytext80\">writeln('Dinh B(',R.B.x:0:3,',R.B.y:0:3, ')');</p>\r\n<p class=\"Bodytext80\">writeln('Dinh C (',R.C.x:0:3,',',R.C.y:0:3,')');</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">procedure Tinhchat(var R:Tamgiac; var Deu, Can, Vuong: Boolean )</p>\r\n<p class=\"Bodytext80\">var a b, c: real;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">Deu:= false; Can:= false; Vuong:= false;</p>\r\n<p class=\"Bodytext80\">Daicanh(R, a, b, c);</p>\r\n<p class=\"Bodytext80\">if (abs(a-b)&lt;eps) and (abs(a-c)&lt;eps) then</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">Deu:= true;</p>\r\n<p class=\"Bodytext80\">Can:= true;</p>\r\n<p class=\"Bodytext80\">else</p>\r\n<p class=\"Bodytext80\">if (abs (a-b) &lt;eps) or tabs (a-c) &lt;eps) or (abs (b-r) &lt;eps)</p>\r\n<p class=\"Bodytext80\">then Can:= true;</p>\r\n<p class=\"Bodytext80\">if (abs(a*a+b*b-c*c)&lt;eps) or (abs(a*a+c*c-b*b)ceps ) or (abs(b*b+c*c-a*a)&lt;eps) then Vuong:= true;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext270\" align=\"left\">Begin</p>\r\n<p class=\"Bodytext80\">clrscr;</p>\r\n<p class=\"Bodytext80\">writeln('Nhap tam giac:');</p>\r\n<p class=\"Bodytext80\">write('Toa do dinh A:'); readln(T.A.x, T.A.y) ;</p>\r\n<p class=\"Bodytext80\">write('Toa do dinh B:'); readln(T.B.x, T.B.y);</p>\r\n<p class=\"Bodytext80\">write('Toa do dinh c:■); readln(T.c.x, T.C.y) ;</p>\r\n<p class=\"Bodytext80\">writeln(' == = = = = = = ===== ================ =====') ;</p>\r\n<p class=\"Bodytext80\">Hienthi(T);</p>\r\n<p class=\"Bodytext80\">writeln('Dien tich:', dientich(T):9:3);</p>\r\n<p class=\"Bodytext80\">writeln ( ' Chu vi : ' , chuvi (T) : 9 : 3);</p>\r\n<p class=\"Bodytext80\">Tinhchater, Deu, Can, Vuong);</p>\r\n<p class=\"Bodytext80\">writeln('Tam giac co tinh chat:');</p>\r\n<p class=\"Bodytext80\">If Deu then writeln('la tam giac deu')</p>\r\n<p class=\"Bodytext80\">else if Can then writeln(' la tam giac can ');</p>\r\n<p class=\"Bodytext80\">if Vuong then writeln('la tam giac vuong');</p>\r\n<p class=\"Bodytext80\">readln;</p>\r\n<p class=\"Bodytext270\" align=\"left\">End.</p>\r\n<p class=\"Bodytext0\" align=\"left\">c) <span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Viết chương trình sử dụng các hàm và thủ tục xây dựng ở trên để giải bài toán:</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Cho tệp dữ liệu </span></span><span class=\"BodytextTimesNewRoman\">TAMGIAC.DAT </span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">có cấu trúc như sau:</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">- Dòng đầu tiên chứa số N;</span></span></p>\r\n<p class=\"Bodytext680\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">- N dòng tiếp theo, mỗi dòng chứa sáu số thực xA, yA, xB, yB, xC, yC là tọa độ ba đỉnh A(xA,<sub> </sub>yA), B(xB,yB), C(xC, yC)</span></span><span class=\"Bodytext68125pt\"><span lang=\"VI\"> của tam giác ABC.</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Hãy nhập dữ liệu từ tệp đã cho và trong số N tam giác đó, đưa ra tệp TAMGlAC.OUT gồm ba dòng:</span></span></p>\r\n<p><em>• </em>Dòng đầu tiên là số lượng tam giác đều;</p>\r\n<p><em>• </em>Dòng thứ hai là số lượng tam giác cân (nhưng không là đều);</p>\r\n<p><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><em>• </em>Dòng thứ ba là số lượng tam giác vuông</span></span></p>\r\n<p class=\"Bodytext0\" style=\"text-align: right;\" align=\"left\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25203,"cat_id":155,"publish_time":1486366680,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_3-0_1.jpg","title":"Hướng dẫn làm bài tập và thực hành 7 trang 105 SGK Tin học 11","label":"Hướng dẫn làm bài tập và thực hành 7 trang 105 SGK Tin học 11","alias":"huong-dan-lam-bai-tap-va-thuc-hanh-7-trang-105-sgk-tin-hoc-11","introtext":"Câu này nhằm mục đích tìm hiểu việc xây dựng các hàm và thủ tục thực hiện tính độ dài các cạnh, chu vi, diện tích, kiểm tra các tính đều, cân, vuông của tam giá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 class=\"Bodytext0\" align=\"left\"><strong><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><strong>1. </strong>Mục đích, yêu cầu</span></span></strong></p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">- Nâng cao kĩ năng viết, sử dụng chương trình con.</span></span></p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">- Biết cách viết một chương trình có cấu trúc để giải một bài toán trên máy tính.</span></span></p>\r\n<p><strong>2. Nội dung</strong></p>\r\n<p class=\"Bodytext0\">a)<strong> </strong>Câu này nhằm mục đích tìm hiểu việc xây dựng các hàm và thủ tục thực hiện tính độ dài các cạnh, chu vi, diện tích, kiểm tra các tính đều, cân, vuông của tam giác. Cụ thể là:</p>\r\n<p class=\"Bodytext0\">- Chúng ta cần hiểu rõ cách sử dụng kiểu bản ghi để mô tả một tam giác.</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Xây dựng các thủ tục và hàm đó;</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Thủ tục nhận dữ liệu vào là biến mô tả tam giác R và đầu ra là độ dài của ba cạnh a, b, c;</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Hàm tính chu vi của tam giác R;</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Hàm tính diện tích cùa tam giác R;</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Hàm tính khoảng cách giữa hai điểm P, Q</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Thủ tục hiển thị tọa độ ba đỉnh tam giác lên màn hình;</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Thủ tục nhận đầu vào là biến mô tả tam giác R và đầu ra là tính chất của tam giác (Deu hay Can hay Vuong);</p>\r\n<p class=\"Bodytext0\">b)<strong> </strong>Trong câu này các chương trình con giải quyết một số bài toán đơn giản liên quan đến tam giác khi biết tọa độ các đỉnh, đó là: tính độ dài cạnh, tính chu vi, tính diện tích, kiểm tra các tính chất (đều, cân, vuông).</p>\r\n<p class=\"Bodytext0\" align=\"left\">Khi dạy chương trình, giả sử ta nhập tọa độ của các đinh A, B, C theo thứ tự là: (2, 30), (15,10), (15, 40) thì trên màn hình thông báo: </p>\r\n<p class=\"Bodytext80\">Dien tich: 130.000,Chu vi: 52.802 Tam giac co tinh Chat: la tam giac can</p>\r\n<p class=\"Bodytext0\">Kết quả chương trình như hình 75 dưới đây:</p>\r\n<p class=\"Bodytext60\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><img src=\"https://img.loigiaihay.com/picture/2017/0125/75.jpg\" alt=\"\" width=\"450\" height=\"195\" /></span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\">Còn khi nhập tọa độ cùa các đinh A, B, c theo thứ tự là: (5, 30), (15,20) , (75. 40) thì trên màn hình thông báo:</p>\r\n<p class=\"Bodytext330\">Dien tich: 100.000,Chu i: 48.284 Tam giac co tinh Chat: la tam giac vuong can</p>\r\n<p class=\"Bodytext0\" align=\"left\">Kết quả chương trình như hình 76 dưới đây:</p>\r\n<p class=\"Bodytext0\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0125/76.jpg\" alt=\"\" width=\"450\" height=\"185\" /></p>\r\n<p class=\"Bodytext30\" align=\"left\"><span class=\"Bodytext3TimesNewRoman\"><span lang=\"VI\">c) Để xây dựng chương trình có sử dụng các hàm và thủ tục xây dựng ở câu a) trên nhằm đưa ra tính chất các tam giác:</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span lang=\"VI\">- </span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Số lượng tam giác đều;</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span lang=\"VI\">- </span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Số lượng tam giác cân;</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span lang=\"VI\">- </span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Số lượng tam giác vuông.</span></span></p>\r\n<p class=\"Bodytext30\" align=\"left\"><span class=\"Bodytext3TimesNewRoman\"><span lang=\"VI\">ta cần tạo tệp </span></span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">tamgiac</span></span><span class=\"Bodytext3TimesNewRoman\"><span lang=\"VI\">. </span></span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">dat</span></span><span class=\"Bodytext3TimesNewRoman\"><span lang=\"VI\">, để từ tệp này đọc dữ liệu sang tệp của chương trình chính.</span></span></p>\r\n<p>- Chương trình tạo tệp tamgỉac. dat nhằm mục đích để nhập tọa độ (Các đỉnh của tam giác.</p>\r\n<p class=\"Bodytext80\">program cau_c_btth7;</p>\r\n<p class=\"Bodytext80\">uses crt;</p>\r\n<p class=\"Bodytext270\" align=\"left\">type</p>\r\n<p class=\"Bodytext80\">Diem = record X, y:real,</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">Tamgiac= record</p>\r\n<p class=\"Bodytext270\" align=\"left\">A, B, C: Diem;</p>\r\n<p class=\"Bodytext270\" align=\"left\">end;</p>\r\n<p class=\"Bodytext270\" align=\"left\">var i, n: integer; f: text;</p>\r\n<p class=\"Bodytext270\" align=\"left\">T: Tamgiac;</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\">assign(f,'tamgiac.dat');</p>\r\n<p class=\"Bodytext270\" align=\"left\">rewrite(f) ,</p>\r\n<p class=\"Bodytext770\">writs 'Nhap so tam giac: ' );</p>\r\n<p class=\"Bodytext770\">read(n);</p>\r\n<p class=\"Bodytext770\">writeln (f , n) ;</p>\r\n<p class=\"Bodytext770\">for i:= 1 to n do</p>\r\n<p class=\"Bodytext770\">begin</p>\r\n<p class=\"Bodytext770\">wrri teln ( ' Nhap toa cua tam giac ',i,' la:');</p>\r\n<p class=\"Bodytext770\">read(T.A.X, T.A.y, T.B.X,T.B.y,T.C.X,T.C.y);</p>\r\n<p class=\"Bodytext770\">writeln ( f , T. A. X, T.A.y, T.B.x,T.B.y,T.C.x,T.C.y);</p>\r\n<p class=\"Bodytext770\">end</p>\r\n<p class=\"Bodytext0\" align=\"left\">clrscr(f) ;</p>\r\n<p class=\"Bodytext0\" align=\"left\">reacln</p>\r\n<p class=\"Bodytext30\" align=\"left\"><span class=\"Bodytext3TimesNewRoman\"><span lang=\"VI\">end.<br /></span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\">Khi ch</span><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">ạy chương trình, ta nhập số tam giác N= 3, với các tọa độ của tam giác lần lượt như sau (Hình 77):</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Tọa độ của tam giác 1 là: (5; 10); (20; 10); (20; 50) (đây là tam giác vuông)</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Tọa độ của tam giác 2 là: (2;30); (15; 20); (15; 40) (đây là tam giác cán)</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Tọa độ của tam giác 2 là: (5; 30); (15; 20); (15; 35) (đây là tam giác thường)</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\"><img src=\"https://img.loigiaihay.com/picture/2017/0125/77.jpg\" alt=\"\" width=\"450\" height=\"84\" /></span></span></p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext80\">a : =Kh_cach (R . B, R.C);</p>\r\n<p class=\"Bodytext80\"> b:=Kh_cach(R.A, R.C);</p>\r\n<p class=\"Bodytext80\">c:=Kh_cach(R.A,R.B);</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">procedure Tinhchat(var R:Tamgiac; var Deu, Can, Vuong: Boolean);</p>\r\n<p class=\"Bodytext80\">var a, b, c:real;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">Deu:=false; Can:=false; Vuong:=false;</p>\r\n<p class=\"Bodytext80\">Daicanh(R, a, b, c); ifMabs (a-b) &lt;eps) and (abs (a-c) &lt;eps) then</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">Deu:= true;</p>\r\n<p class=\"Bodytext80\">Can:= true;</p>\r\n<p class=\"Bodytext80\">end else</p>\r\n<p class=\"Bodytext80\">if (abs (a-b) &lt;eps) or (abs (a-c) &lt;eps) or (abs (b-c) &lt;ep:S) then Can:=true;</p>\r\n<p class=\"Bodytext80\">if (abs(a*a+b*b-c*c)&lt;eps) or (abs (a*a+c*c-k*b) &lt;c-ps) or (abs(b*b+c*c-a*a)&lt;eps) then Vuong:= truer</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext270\" align=\"left\">Begin</p>\r\n<p class=\"Bodytext80\">deu:= 0; can:= 0; vuong:= 0;</p>\r\n<p class=\"Bodytext80\">assign ( f, ' tamgiac . dat' ) ,</p>\r\n<p class=\"Bodytext80\">reset(f);</p>\r\n<p class=\"Bodytext80\">readln(f,N);</p>\r\n<p class=\"Bodytext80\">for i:= 1 to N do</p>\r\n<p class=\"Bodytext270\" align=\"left\">begin</p>\r\n<p class=\"Bodytext80\">readln(f, T.A.X, T.A.y, T.B.x,T.B.y,T.C.x,T.C.y);</p>\r\n<p class=\"Bodytext80\">Tinhchat(T, D, Cn, V);</p>\r\n<p class=\"Bodytext80\">If D then deu:= deu + 1 else</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">if Cn then can:= can + 1;</p>\r\n<p class=\"Bodytext80\">if V then vuong:= vuong + 1;</p>\r\n<p class=\"Bodytext80\">end;end;</p>\r\n<p class=\"Bodytext80\">writeln('Co: ',deu,'tam giac deu');</p>\r\n<p class=\"Bodytext80\">writeln('Co: can,'tam giac can(khong deu)' );</p>\r\n<p class=\"Bodytext80\">writeln('Co: ’,vuong, 'tam giac vuong);</p>\r\n<p class=\"Bodytext80\">readln;</p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">end <br /></span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Co 0 tam giac deu</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Co 1 tam giac can(khong deu)</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Co 1 tam giac vuong</span></span></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Kết quả chương trình như hình 78 dưới đây:</span></span></p>\r\n<div><img src=\"https://img.loigiaihay.com/picture/2017/0125/78.jpg\" alt=\"\" width=\"450\" height=\"82\" /></div>\r\n<div style=\"text-align: right;\"><strong>Loigiaihay.com</strong></div>"},{"article_id":25204,"cat_id":155,"publish_time":1486366680,"type_ex":1,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_5-0_1.jpg","title":"Lý thuyết: Thư viện chương trình con chuẩn trang 110 SGK Tin học 10","label":"Lý thuyết: Thư viện chương trình con chuẩn trang 110 SGK Tin học 10","alias":"ly-thuyet-thu-vien-chuong-trinh-con-chuan-trang-110-sgk-tin-hoc-10","introtext":"Thư viện CRT chứa các thủ tục liên quan đến việc quản lí và khai thác màn hình, bàn phím của máy tính.","display_type":0,"article_type":1},{"article_id":25205,"cat_id":155,"publish_time":1486366680,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_3-0_2.jpg","title":"Bài tập và thực hành 8 trang 115 SGK Tin học 11","label":"Bài tập và thực hành 8 trang 115 SGK Tin học 11","alias":"bai-tap-va-thuc-hanh-8-trang-115-sgk-tin-hoc-11","introtext":" Chương trình sau đây vẽ các đường gấp khúc “ngẫu nhiên” nhờ thủ tục LineTo, mỗi đoạn có một màu ngẫu nhiê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>Giới thiệu một số chương trình để học sinh thấy được khả năng đồ họa của Pascal.</p>\r\n<p><strong>2. Nội dung</strong></p>\r\n<div class=\"WordSection1\">\r\n<p class=\"Bodytext0\">a) Chương trình sau đây vẽ các đường gấp khúc “ngẫu nhiên” nhờ thủ tục LineTo, mỗi đoạn có một màu ngẫu nhiên. Ví trí bắt đầu vẽ là tâm của màn hình. Kết thúc việc vẽ bằng cách nhấn một phím bất kỳ. Chạy thử chương trình và quan sát kết quả trên màn hình.</p>\r\n<p class=\"Bodytext80\">uses crt, graph;</p>\r\n<p class=\"Bodytext80\">var stop: boolean;</p>\r\n<p class=\"Bodytext80\">function Detectlnit(path:string): integer; var drive, mode: integer;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">drive:= 0;</p>\r\n<p class=\"Bodytext80\">EnitGraph(drive, mode, path);</p>\r\n</div>\r\n<p>end;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">if Detectlnit('c:\\TP\\BGI')&lt;&gt;0 then begin</p>\r\n<p class=\"Bodytext770\">Write('Loi do hoa ! Nhan phim Enter de ket thuc')</p>\r\n<p class=\"Bodytext770\">readln;</p>\r\n<p class=\"Bodytext80\">end</p>\r\n<p class=\"Bodytext80\">else</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">Randomize;</p>\r\n<p>MoveTo(getmaxx div 2, Getmaxy div 2); </p>\r\n<p class=\"Bodytext80\">stop:= false; while not (stop) do</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">SetColor(Random(GetMaxColor)) ;</p>\r\n<p class=\"Bodytext80\">{Thiet lap mau mot cach ngau nhien}</p>\r\n<p class=\"Bodytext80\">LineTo(Random(getmaxx),Random(getmaxy));</p>\r\n<p class=\"Bodytext80\">Delay(200); {tam dung} stop :=keypressed;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">CloseGraph</p>\r\n<p class=\"Bodytext80\">End.</p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">b) Chương trình dưới đây minh họa việc sử dụng các thủ tục vẽ hình đơn giản. Hãy </span></span>chạy chương trình rồi thay đổi một số tham số như màu vẽ, tọa độ và quan sát kết quả trên màn hình.</p>\r\n<div class=\"WordSection1\">\r\n<p class=\"Bodytext80\">program graphDemo;</p>\r\n<p class=\"Bodytext80\">uses graph;</p>\r\n<p class=\"Bodytext80\">var</p>\r\n<p class=\"Bodytext80\">gd, gm: integer; xm, ym, xmaxD4, ymaxD4: Word;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">gd:=detect;</p>\r\n<p class=\"Bodytext80\">Initgraph(gd, gm, 'C:\\TP\\BGI');</p>\r\n<p class=\"Bodytext80\">xm: =GetmaxX div 2 , ym:= GetmaxY div 2);</p>\r\n<p class=\"Bodytext80\">{ve hinh chu nhat voi net ve mau vang}</p>\r\n<p class=\"Bodytext80\">SetColor(yellow);</p>\r\n<p class=\"Bodytext80\">Rectangle(10,10, xm, ym);</p>\r\n<p class=\"Bodytext80\">readln;</p>\r\n<p class=\"Bodytext80\">{Ve duong vong tron mau xanh la cay,tam(450; 100) Dan kinh 50}</p>\r\n<p class=\"Bodytext80\">Setcolor(LightGreen);</p>\r\n<p class=\"Bodytext80\">Circle(450, 100, 50);</p>\r\n<p class=\"Bodytext80\">readln;</p>\r\n<p class=\"Bodytext80\">{ve ellip mau do}</p>\r\n</div>\r\n<p class=\"Bodytext0\" align=\"left\">Sitrolor (red) ;</p>\r\n<p class=\"Bodytext80\">Elipse (100, 200, 0, 360, 50, 120);</p>\r\n<p class=\"Bodytext80\">readln; </p>\r\n<p class=\"Bodytext80\">CloseGraph</p>\r\n<p class=\"Bodytext80\">end.</p>\r\n<p class=\"Bodytext80\" style=\"text-align: right;\"><strong> Loigiaihay.com</strong></p>"},{"article_id":25206,"cat_id":155,"publish_time":1486366680,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_5-0_2.jpg","title":"Hướng dẫn làm bài tập và thực hành 8 trang 115 SGK Tin học 11","label":"Hướng dẫn làm bài tập và thực hành 8 trang 115 SGK Tin học 11","alias":"huong-dan-lam-bai-tap-va-thuc-hanh-8-trang-115-sgk-tin-hoc-11","introtext":"Chương trình vẽ các đường gấp khúc “ngẫu nhiên”, mỗi đoạn có một màu ngẫu nhiê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 class=\"Bodytext30\"><strong>1. Mục đích, yêu cầu</strong></p>\r\n<p>Giới thiệu một số chương trình để học sinh thấy được khả năng đồ họa của Pascal.</p>\r\n<p><strong>2. Nội dung</strong></p>\r\n<p class=\"Bodytext0\">a) Chương trình vẽ các đường gấp khúc “ngẫu nhiên”, mỗi đoạn có một màu ngẫu nhiên.</p>\r\n<p class=\"Bodytext0\">Trong trường hợp, đường dẫn của chương trình sai (có thể tệp graph.tpu không có trên PDGI hoặc nằm ngoài thư mục DGI) thì sẽ có thông báo trên màn hình ' Loi</p>\r\n<p class=\"Bodytext0\">do xoa! Nhan phim Enter de ket thuc. . . '(Hình 79). </p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0125/79.jpg\" alt=\"\" width=\"450\" height=\"80\" /></p>\r\n<p class=\"Bodytext0\">Khi đó, ta nhấn phím Enter để quay trở lại chương trình để thay đổi lại đường dẫn. Kết quả chương trình sẽ cho ta các đường gấp khúc “ngẫu nhiên”, mỗi đoạn có một màu ngẫu nhiên, bao gồm các màu xanh, đỏ, tím, vàng,...(Hình 80).</p>\r\n<p class=\"Bodytext0\"><img src=\"https://img.loigiaihay.com/picture/2017/0125/80.jpg\" alt=\"\" width=\"277\" height=\"169\" /></p>\r\n<p class=\"Bodytext0\">Lưu ý: Nhiều khi tệp graph.tpu nằm trong thư mục BIN của TP của ổ đĩa D hoặc E (do người sử dụng thiết đặt). Đường dẫn đến tệp graph.tpu có dạng như sau:</p>\r\n<p class=\"Bodytext80\">D:\\TP\\BIN\\GRAP.TPU</p>\r\n<p class=\"Bodytext0\">b) Khi chạy chương trình GrapDemo, ta thấy trên màn hình xuất hiện một hình chữ nhật màu vàng. Tiếp đến sau khi gõ phím Enter, trên màn hình lại xuất hiện một hình tròn màu xanh. Tương tự, sau khi gõ phím Enter, trên màn hình xuất hiện tiếp một hình Elip màu đỏ cắt một cạnh của hình chữ nhật.</p>\r\n<p class=\"Bodytext0\">Khi thay đổi một sổ tham số như màu vẽ, chẳng hạn hình chữ nhật được thay bàng màu xanh trời, tọa độ (20, 20 , xm,ym). Đoạn chương trình sau thể hiện sự thay đổi các tham số về màu, tọa độ của hình chữ nhật, hình tròn và hình elip.</p>\r\n<p class=\"Bodytext80\">xm:= GetmaxX div 2; ym:= GetmaxY div 2;</p>\r\n<p class=\"Bodytext80\">{ve hinh chu nhat voi net ve mau xanh troi}</p>\r\n<p class=\"Bodytext80\">Setcolor(blue);</p>\r\n<p class=\"Bodytext80\">Rectangle(20,20,xm,ym);</p>\r\n<p class=\"Bodytext80\">readln;</p>\r\n<p class=\"Bodytext80\">{Ve duong vong tron mau trang, tam(500; 150) ban kinh 100}</p>\r\n<p class=\"Bodytext80\">Setcolor(red);</p>\r\n<p class=\"Bodytext80\">Circle(500, 150,100);</p>\r\n<p class=\"Bodytext80\">readln;</p>\r\n<p class=\"Bodytext80\">{ve ellip mau tim}</p>\r\n<p class=\"Bodytext80\">Setcolor(magenta);</p>\r\n<p class=\"Bodytext80\">Ellipse(200, 250, 15, 360, 70, 120);</p>\r\n<p class=\"Bodytext60\">Chương trình:</p>\r\n<p class=\"Bodytext80\">program graphDemo_2;</p>\r\n<p class=\"Bodytext80\">uses graph;</p>\r\n<p class=\"Bodytext80\">var</p>\r\n<p class=\"Heading440\">gd, gm: integer; xm, ym, xmaxD4, ymaxD4: word,</p>\r\n<p class=\"Heading440\">Begin</p>\r\n<p class=\"Bodytext80\">gd:= detect;</p>\r\n<p class=\"Bodytext80\">Initgraph(gd, gm, 'C:\\TP\\BGI');</p>\r\n<p class=\"Bodytext80\">xm:=GetmaxX div 2; ym:= GetmaxY div 2;</p>\r\n<p class=\"Bodytext80\">{ve hinh chu nhat voi net ve xanh troi}</p>\r\n<p class=\"Bodytext80\">Setcolor(blue);</p>\r\n<p class=\"Bodytext80\">Rectangle(20,20,xm,ym);</p>\r\n<p class=\"Bodytext80\">readln;</p>\r\n<p class=\"Bodytext80\">{Ve duong vong tron mau do, tam(500; 150) ban kinh 100} Setcolor(red);</p>\r\n<p class=\"Bodytext80\">Circle(500, 150,100);</p>\r\n<p class=\"Bodytext80\">readln;</p>\r\n<p class=\"Bodytext80\">{ve ellip mau tim}</p>\r\n<p class=\"Bodytext80\">Setcolor(magenta);</p>\r\n<p class=\"Bodytext80\">Ellipse(200, 250, 15, 360, 70, 120);</p>\r\n<p class=\"Bodytext80\">readln;</p>\r\n<p class=\"Bodytext80\">CloseGraph</p>\r\n<p class=\"Bodytext80\">End.</p>\r\n<p class=\"Bodytext80\">Khi chạy chương trình vừa đã thay đổi các tham số về tọa độ, màu sắc, trên màn hình xuất hiện một hình chữ nhật da trời. Tiếp đến sau khi gõ phím Inter, trên màn hình xuất hiện một hình tròn màu đỏ. Tương tự, sau khi gõ phím Enter, trên màn hình xuất hiện một hình Elip màu tím cắt một cạnh của hình chữ nhật (Hình 81)</p>\r\n<p class=\"Bodytext80\"><img src=\"https://img.loigiaihay.com/picture/2017/0125/81.jpg\" alt=\"\" width=\"389\" height=\"236\" /></p>\r\n<p class=\"Bodytext80\" style=\"text-align: right;\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25208,"cat_id":155,"publish_time":1486366680,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_2-0_4.jpg","title":"Câu 1 trang 117 SGK Tin học 11","label":"Câu 1 trang 117 SGK Tin học 11","alias":"cau-1-trang-117-sgk-tin-hoc-11","introtext":"Hãy nêu sự giống nhau và khác nhau giữa thủ tục và hàm.","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\">Sự giống nhau và khác nhau giữa thủ tục và hàm :</p>\r\n<p>- Giống nhau: Cả thủ tục và hàm đều là chương trình con, cấu trúc giống như một chương trình trừ dòng đầu tiên và kết thúc bằng END; (thay vì END.). Cả thủ tục và hàm có thể chứa các tham số (tham số giá trị và tham số biến), cùng tuân theo quy định về khai báo và sử dụng các loại tham số này.</p>\r\n<p>- Khác nhau: Việc thực hiện hàm luôn trả về giá trị kết quả thuộc kiểu xác định và giá trị đó được gán cho tên hàm.</p>\r\n<p>Lời gọi hàm có thể làm tham gia vào biểu thức khác như một toán hạng.</p>\r\n<p>Ví dụ: a:=unln(5,6)+1</p>\r\n<p style=\"text-align: right;\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25209,"cat_id":155,"publish_time":1486366680,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_4-0_2.jpg","title":"Câu 2 trang 117 SGK Tin học 11","label":"Câu 2 trang 117 SGK Tin học 11","alias":"cau-2-trang-117-sgk-tin-hoc-11","introtext":"Chương trình con có thể không có tham số được không? Cho ví dụ.","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 align=\"left\">Chương trình con có thể không có tham số.</p>\r\n<p align=\"left\"><u>Ví dụ 1 :</u></p>\r\n<p>procedure Ve_Hcn;</p>\r\n<p>begin</p>\r\n<p>writeln('* ******');</p>\r\n<p>writeln (' *        * ');</p>\r\n<p>writeln('* ******');</p>\r\n<p>end;</p>\r\n<p><u>Ví dụ 2:</u> Thủ tục không có tham số:</p>\r\n<p>Procedure vietgidi();</p>\r\n<p>Begin </p>\r\n<p>       Writeln('Viet mot cai gi do');</p>\r\n<p>End;</p>\r\n<p><u>Ví dụ 3 :</u> Hàm không có tham số</p>\r\n<p>Function Traveso():integer;</p>\r\n<p>Begin</p>\r\n<p>       Traveso:=3;</p>\r\n<p>End;</p>\r\n<p style=\"text-align: right;\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25210,"cat_id":155,"publish_time":1486366680,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_6-0.jpg","title":"Câu 3 trang 117 SGK Tin học 11","label":"Câu 3 trang 117 SGK Tin học 11","alias":"cau-3-trang-117-sgk-tin-hoc-11","introtext":"Hãy cho ví dụ chương trình con có nhiều hơn một kết quả ra.","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\">Ví dụ chương trình con có nhiều hơn một kết quả ra:</p>\r\n<p class=\"Bodytext80\">a) Procedure  Hoan_đoi(var X, ỵ: integer);</p>\r\n<p class=\"Bodytext80\">var TG: integer;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">TG:= X; x:= y; y:= TG;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\">b) Procedure Hoan_đoi(x: integer; var y: integer);</p>\r\n<p class=\"Bodytext80\">var TG: integer;</p>\r\n<p class=\"Bodytext80\">begin</p>\r\n<p class=\"Bodytext80\">TG:= x;</p>\r\n<p class=\"Bodytext80\">X: = y , y:= TG;</p>\r\n<p class=\"Bodytext80\">end;</p>\r\n<p class=\"Bodytext80\" style=\"text-align: right;\"><strong>Loigiaihay.com</strong></p>"},{"article_id":25211,"cat_id":155,"publish_time":1486366680,"type_ex":2,"is_hot":0,"is_link":0,"thumbnail":"https://img.loigiaihay.com/picture/article/2017/0125/resize_7-0.jpg","title":"Câu 4 trang 117 SGK Tin học 11","label":"Câu 4 trang 117 SGK Tin học 11","alias":"cau-4-trang-117-sgk-tin-hoc-11","introtext":"Viết chương trình con (làm, thủ tục) tính bội số chung nhỏ nhất của hai số nguyên dương a, b. Hãy cho biết trong trường hợp này viết chương trình con dưới dạng hàm hay thủ tục là thuận tiện hơn. Vì sao?","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>Viết chương trình con (hàm, thủ tục) tính bội số chung nhỏ nhất của hai số nguyên dương a, b.</p>\r\n<p class=\"Bodytext0\" align=\"left\">Ta nhận thấy rằng, bội số chung nhỏ nhất của hai số nguyên dương a, b có thể được tính theo công thức:</p>\r\n<p class=\"Heading1460\">ab/d</p>\r\n<p class=\"Bodytext900\">trong đó d là ước chung lớn nhất của a và b.</p>\r\n<p class=\"Bodytext800\" align=\"left\">Bởi vậy:</p>\r\n<p class=\"Bodytext0\" align=\"left\">Nên viết hàm để tính bội chung nhỏ nhất của hai số nguyên dương vì chương trình con cần trả ra một giá trị;</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Hàm tính bội chung nhỏ nhất của hai số nguyên dương a, b cần sử dụng hàm tính ước chung lớn nhất của a và b.</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Hàm tính ước chung lớn nhất của hai số nguyên dương a, b:</p>\r\n<p class=\"Bodytext770\">function ucln (a, b: integer): integer;</p>\r\n<p class=\"Bodytext81\">var r: integer;</p>\r\n<p class=\"Bodytext81\">begin</p>\r\n<p class=\"Bodytext81\">while b&gt;0 do begin</p>\r\n<p class=\"Bodytext81\">r: = a mod b ,a : = b ; b:= r; end; ucln:= a; and;</p>\r\n<p class=\"Bodytext0\" align=\"left\">- Hàm tính bội chung nhỏ nhất của hai số nguyên dương a, b:</p>\r\n<p class=\"Bodytext81\">lunction bcnn(a, b: integer): integer;</p>\r\n<p class=\"Bodytext81\">begin</p>\r\n<p class=\"Bodytext81\">bcnn:= a*b div ucln(a, b);</p>\r\n<p class=\"Bodytext81\">end;</p>\r\n<p class=\"Bodytext0\" align=\"left\">Khi đó, chương trình con tính bội số chung nhỏ nhất của hai số nguyên dương a, b như sau:</p>\r\n<p class=\"Bodytext0\" align=\"left\">program bai4_chuong6;</p>\r\n<p class=\"Bodytext81\">use crt ;</p>\r\n<p class=\"Bodytext0\" align=\"left\">vai</p>\r\n<p class=\"Bodytext910\">X y: integer;</p>\r\n<p class=\"Bodytext81\">function ucln(a, b: integer): integer;</p>\r\n<p class=\"Bodytext81\">var r: integer;</p>\r\n<p class=\"Bodytext81\">begin</p>\r\n<p class=\"Bodytext81\">while b&gt;0 do begin</p>\r\n<p class=\"Bodytext81\">r:= a mod b; a: = b ,b:= r;</p>\r\n<p class=\"Bodytext81\">end; ucln:= a;</p>\r\n<p class=\"Bodytext81\">end;</p>\r\n<p class=\"Bodytext81\">txnction bcnn(a, b: integer): integer;</p>\r\n<p class=\"Bodytext81\">begin</p>\r\n<p class=\"Bodytext81\">bcnn:= a*b div ucln(a, b);</p>\r\n<p class=\"Bodytext81\">end;</p>\r\n<p class=\"Bodytext81\">Begin</p>\r\n<p class=\"Bodytext81\">clrscr;</p>\r\n<p class=\"Bodytext81\">writeln('Nhap vao hai so can tim BCNN');</p>\r\n<p class=\"Bodytext81\">write ('x=') , readln(x); write ('y=') , readln(y);</p>\r\n<p class=\"Bodytext81\">writeln('bcnn cua hai so',x:4,'va',y:4,'la',bcnn(a,b)</p>\r\n<p class=\"Bodytext81\">readln</p>\r\n<p class=\"Bodytext81\">End.</p>\r\n<p class=\"Bodytext0\" align=\"left\">Khi chạy chương trình, giả sử nhập x= 5, y- 4 thì bội chung nhỏ nhất của X và y là 20. Kết quả chương trình như hình 82 dưới đây:</p>\r\n<p class=\"Bodytext0\" align=\"left\"><img src=\"https://img.loigiaihay.com/picture/2017/0125/82.jpg\" alt=\"\" width=\"450\" height=\"93\" /></p>\r\n<p class=\"Bodytext0\" align=\"left\"><span class=\"BodytextTimesNewRoman\"><span lang=\"VI\">Như vậy, trong trường hợp này ta viết chương trình con dưới dạng hàm là thuận tiện hơn so với viết chương trình con dưới dạng thủ tục. Vì ít khi chúng ta chỉ tính riêng bội chung nhỏ nhất mà bội chung nhỏ nhất chỉ để phục vụ một việc nào đó tiếp theo. Nếu sử dụng hàm thì ta có thể dùng lời gọi hàm để tham gia vào các biểu thức toán học khác. Còn sử dụng thủ tục thì chúng ta không thể làm được như vậy.</span></span></p>\r\n<p class=\"Bodytext0\" style=\"text-align: right;\" align=\"left\"><strong>Loigiaihay.com</strong></p>"}],"most_views":[],"list_sub_event":[{"id":"4783","item_id":4783,"title":"Bài 17: Chương trình con và phân loại","short_title":"Bài 17: Chương trình con và phân loại","is_link":0},{"id":"4784","item_id":4784,"title":"Bài 18: Ví dụ về cách viết và sử dụng chương trình con","short_title":"Bài 18: Ví dụ về cách viết và sử dụng chương trình con","is_link":0},{"id":"4785","item_id":4785,"title":"Bài tập và thực hành 6","short_title":"Bài tập và thực hành 6","is_link":0},{"id":"4786","item_id":4786,"title":"Bài tập và thực hành 7","short_title":"Bài tập và thực hành 7","is_link":0},{"id":"4787","item_id":4787,"title":"Bài 19: Thư viện chương trình con chuẩn","short_title":"Bài 19: Thư viện chương trình con chuẩn","is_link":0},{"id":"4788","item_id":4788,"title":"Bài tập và thực hành 8","short_title":"Bài tập và thực hành 8","is_link":0},{"id":"4789","item_id":4789,"title":"Tóm tắt chương VI","short_title":"Tóm tắt chương VI","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":[]}