Sáng kiến kinh nghiệm THPT: Xây dựng và giải các bài tập thực tế về “Cấu trúc rẽ nhánh” tin học 11
lượt xem 7
download
Mục đích của sáng kiến kinh nghiệm là còn giúp học sinh thích ứng và hoà nhập được với xã hội hiện đại, hình thành và phát triển cho học sinh năng lực tin học để học tập, làm việc và nâng cao chất lượng cuộc sống, đóng góp vào sự nghiệp xây dựng và bảo vệ Tổ quốc.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Sáng kiến kinh nghiệm THPT: Xây dựng và giải các bài tập thực tế về “Cấu trúc rẽ nhánh” tin học 11
- MỤC LỤC Nội dung Trang BÁO CÁO KẾT QUẢ NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN 1. Lời giới thiệu Một trong những mục tiêu của chương trình giáo dục phổ thông tổng thể sắp tới của bậc trung học phổ thông là nhằm giúp học sinh củng cố và phát triển những kết quả của giáo dục trung học cơ sở, hoàn thiện học vấn phổ thông và có những hiểu biết thông thường về kỹ thuật và hướng nghiệp, có điều kiện phát huy năng lực cá nhân để lựa chọn hướng phát triển, tiếp tục học đại học, cao đẳng, trung cấp, học nghề hoặc đi vào cuộc sống lao động. Trong đó giáo dục tin học đóng vai trò chủ đạo trong việc chuẩn bị cho học sinh khả năng tìm kiếm, tiếp nhận, mở rộng tri thức và sáng tạo trong thời đại cách mạng công nghiệp lần thứ tư và toàn cầu hoá. Tin học có ảnh hưởng lớn đến cách sống, cách suy nghĩ và hành động của con người, là công cụ hiệu quả hỗ trợ biến việc học thành tự học suốt đời. Môn Tin học còn giúp học sinh thích ứng và hoà nhập được với xã hội hiện đại, hình thành và phát triển cho học sinh năng lực tin học để học tập, làm việc và nâng cao chất lượng cuộc sống, đóng góp vào sự nghiệp xây dựng và bảo vệ Tổ quốc. Một trong những nội dung của tin học là việc lập được các chương trình tự hoạt động cho máy tính, máy gia dụng. Và để làm được việc đó cần
- có một quá trình nghiên cứu, học tập về ngôn ngữ lập trình lâu dài, qua đó nhà lập trình có thể chọn một ngôn ngữ lập trình thích hợp. Tuy nhiên mọi thứ đều có điểm khởi đầu của nó, với học sinh việc học Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập trình bậc cao. Từ đó các em có thêm một định hướng, một niềm đam mê về tin học, về nghề nghiệp mà các em chọn sau này. Đồng thời Pascal là một “ngôn ngữ học đường”. Bản chất viết chương trình là một môn học khó, trừu tượng, học sinh khó nắm kiến thức. Học sinh muốn nắm được kiến thức phải nắm vững những kiến thức cơ bản của các câu lệnh, mà câu lệnh rẽ nhánh là một câu lệnh cơ bản của mọi ngôn ngữ lập trình. Từ thực tiễn giảng dạy và bồi dưỡng học sinh giỏi các năm tại trường THPT Nguyễn Thái Học tôi thấy rằng: Đại đa số học sinh chưa hứng thú học môn Tin, chưa thấy rõ việc lập trình ứng dụng vào các tình huống trong cuộc sống như thế nào? Do đó tôi băn khoăn và suy nghĩ vậy làm thế nào để qua mỗi hoạt động học, qua mỗi bài tập học sinh giải quyết các em sẽ hứng thú, yêu thích môn Tin hơn? Để các em thấy được sự cần thiết của các ứng dụng tin học vào trong thực tế cuộc sống hàng ngày ra sao? Để sau này khi học tiếp hoặc tham gia vào cuộc sống lao động các em có thể áp dụng tin học vào thực tiễn, hoặc có thể lý giải tin học ứng dụng trong cuộc sống như thế nào? Chính vì những lý do trên nên ngay từ đầu năm học 2019 2020 tôi đã chọn và xây dựng đề tài “Xây dựng và giải các bài tập thực tế về “Cấu trúc rẽ nhánh” tin học 11”. 2. Tên sáng kiến “Xây dựng và giải các bài tập thực tế về “Cấu trúc rẽ nhánh” tin học 11”. 3. Tác giả sáng kiến Họ và tên: Nguyễn Thị Mơ Địa chỉ tác giả sáng kiến: trường THPT Nguyễn Thái Học Số điện thoại: 0396.88.99.56 E_mail: nguyenthimo86@gmail.com 4. Chủ đầu tư tạo ra sáng kiến: Nguyễn Thị Mơ 5. Lĩnh vực áp dụng sáng kiến: Dạy và học tin học 11 đại trà, bồi dưỡng học sinh giỏi Tin THPT. 6. Ngày sáng kiến được áp dụng lần đầu: tháng 9 năm 2019 7. Mô tả bản chất của sáng kiến 7.1. Lý thuyết về cấu trúc rẽ nhánh (Theo chương trình sách giáo khoa Tin học 11 hiện hành) 2
- 7.1.1. Rẽ nhánh Thường ngày, có rất nhiều việc chỉ được thực hiện khi một điều kiện cụ thể nào đó được thỏa mãn. Ví dụ, Châu và Ngọc thường cùng nhau chuẩn bị các bài thực hành môn Tin học. Một lần Châu hẹn với Ngọc: "Chiều mai nếu trời không mưa thì Châu sẽ đến nhà Ngọc". Một lần khác, Ngọc nói với Châu: "Chiều mai nếu trời không mưa thì Ngọc sẽ đến nhà Châu, nếu mưa thì sẽ gọi điện cho Châu để trao đổi". Câu nói của Châu cho ta biết một việc làm cụ thể (Châu đến nhà Ngọc) sẽ được thực hiện nếu một điều kiện cụ thể (trời không mưa) thoả mãn. Ngoài ra không đề cập đến việc gì sẽ xảy ra nếu điều kiện đó không thoả mãn (trời mưa). Cách diễn đạt như vậy ta nói thuộc dạng mệnh đề thiếu: Nếu... thì… Câu nói của Ngọc khẳng định một trong hai việc cụ thể (Ngọc đến nhà Châu hay Ngọc gọi điện cho Châu) chắc chắn sẽ xảy ra. Tuy nhiên, việc nào trong hai việc sẽ được thực hiện thì tuỳ thuộc vào điều kiện cụ thể (trời không mưa) thoả mãn hay không. Cách diễn đạt như vậy ta nói thuộc dạng mệnh đề đủ: Nếu… thì…, nếu không thì… Từ đó có thể thấy, trong nhiều thuật toán, các thao tác tiếp theo sẽ phụ thuộc vào kết quả nhận được từ các bước trước đó. Cấu trúc dùng để mô tả các mệnh đề có dạng như trên được gọi là cấu trúc rẽ nhánh. 7.1.2. Câu lệnh If then Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh ifthen. Tương ứng với hai dạng mệnh đề thiếu và đủ nói ở trên, Pascal có hai dạng câu lệnh if then: a) Dạng thiếu if then ; b) Dạng đủ if then else ; trong đó: Điều kiện: Biểu thức quan hệ hoặc lôgic. Câu lệnh, câu lệnh 1, câu lệnh 2 là một câu lệnh của Pascal. 3
- Hình 1 Hình 2 Ở dạng thiếu: Đầu tiên điều kiện sẽ được tính và kiểm tra. Nếu điều kiện đúng (có giá trị true) thì câu lệnh sẽ được thực hiện, ngược lại thì câu lệnh sẽ bị bỏ qua (Hình 1). Ở dạng đủ: điều kiện cũng được tính và kiểm tra. Nếu điều kiện đúng thì câu lệnh 1 sẽ được thực hiện, ngược lại thì câu lệnh 2 sẽ được thực hiện (Hình 2). Ví dụ 1 if Delta < 0 then writeln('Phuong trinh vo nghiem.'); Ví dụ 2 if a mod 3 = 0 then write('a chia het cho 3') else write('a khong chia het cho 3'); 7.1.3. Câu lệnh ghép Theo cú pháp, sau một số từ khoá (như then hoặc else) phải là một câu lệnh. Nhưng trong nhiều trường hợp, các thao tác sau những tên dành riêng đó khá phức tạp, đòi hỏi không phải chỉ một mà là nhiều câu lệnh để mô tả. Trong các trường hợp như vậy, ngôn ngữ lập trình cho phép gộp một dãy câu lệnh thành một câu lệnh ghép (hay câu lệnh hợp thành). Chẳng hạn, câu lệnh ghép của Pascal có dạng: begin end; Câu lệnh, câu lệnh 1, câu lệnh 2 trong các câu lệnh ifthen ở mục trên có thể là câu lệnh ghép. Thuật ngữ câu lệnh được hiểu chung cho câu lệnh đơn và câu lệnh ghép. Ví dụ if D < 0 then writeln('Phuong trinh vo nghiem.') else begin x1:= (-b – sqrt(b*b – 4*a*c))/(2*a); 4
- x2:= -b/a-x1 end; Chú ý: Trước else không có dấu “;” 7.2. Xây dựng và giải các bài tập thực tế về cấu trúc rẽ nhánh Các bài tập được xây dựng và giải là các bài tập gắn với các tình huống gần gũi, quen thuộc trong cuộc sống hàng ngày của các em. Qua mỗi bài tập đó các em thấy được ứng dụng của tin học trong cuộc sống hàng ngày như thế nào? Thấy được những phần mềm, ứng dụng không phải quá xa vời, cao siêu mà bắt nguồn từ những bài học hàng ngày các em được học. Qua hệ thống các bài tập được xây dựng học sinh cũng hình thành và phát huy năng lực, kĩ năng của mình để giải quyết các vấn đề thực tiễn trong cuộc sống hoặc lý giải được việc tin học ứng dụng như thế nào trong thực tế. Hệ thống bài tập được xây dựng từ dễ đến khó, từ cơ bản đến nâng cao và chia thành 2 loại: Các bài tập có thể áp dụng cho dạy và học tin học đại trà trong chương trình tin học THPT. Các bài tập có thể áp dụng cho dạy học và bồi dưỡng học sinh giỏi Tin học THPT. Mỗi bài tập xây dựng gồm 3 nội dung: Phát biểu nội dung bài toán gắn với tình huống học sinh gặp trong thực tế. Phân tích để đưa ra hướng giải của bài toán, có thể phân tích học sinh học được gì qua bài toán đó, lý do tại sao lại xây dựng và chọn bài toán đó. Từ bài toán đó có thể nâng cao mở rộng sang bài toán khác không? Đưa ra chương trình đề xuất. 7.2.1. Các bài tập có thể áp dụng cho dạy học tin học đại trà Các bài tập áp dụng cho dạy học tin học đại trà được viết chương trình đề xuất đầy đủ sử dụng nhập dữ liệu từ bàn phím. Các bài tập này cũng có thể dùng để dạy học và bồi dưỡng học sinh giỏi. Bài 1: Giải phương trình bậc 2 Bài toán: Lớp 11 năm nay An được cô giáo Tin học giới thiệu mình sẽ được học lập trình. An liền suy nghĩ luôn chương trình giải phương trình bậc hai trên máy tính cầm tay không biết họ lập trình ra sao nhỉ? Em giúp An viết 5
- chương trình nhập từ bàn phím hệ số a,b,c. Tìm nghiệm thực của phương trình bậc 2: ax2+bx+c=0 (a≠0). Phân tích: bài toán giải phương trình bậc hai là bài toán rất quen thuộc với học sinh trong toán học. Qua bài toán các em thấy được ứng dụng giải phương trình bậc hai trong máy tính cầm tay được cài đặt tương tự như chương trình đề xuất. Chương trình đề xuất: program Giai_ptb2; uses crt; var a,b,c:real; d,x1,x2:real; begin Clrscr; Write('Nhap he so a,b,c:'); readln(a,b,c); D:=b*b-4*a*c; if d
- Chương trình đề xuất program Nam_nhuan; uses crt; var N, SN: integer; begin clrscr; write('Nam: '); readln(N); if (N mod 400 = 0)or((N mod 4 = 0)and( N mod 100 0)) then SN:= 366 else SN:= 365; writeln(' So ngay cua nam ', N,' la ', SN); readln end. Bài 3: Ứng dụng trong viết phần mềm học toán của trẻ em Bài toán: Những ngày nghỉ học vì dịch bệnh Covid19 An ở nhà phải trông em thấy đứa em lớp 1 học toán bằng phần mềm trên máy tính. Khi nhập kết quả tổng của hai số a và b bất kỳ thì máy tính đưa ra Đúng hay Sai? An nghĩ cái này dễ mà, kỳ I học Tin mình đã được học cấu trúc rẽ nhánh có gì mà không viết được. Em giúp An viết chương trình nhập vào hai số nguyên a, b từ bàn phím. Máy hiển thị a+b=? Người dùng nhập kết quả. Máy hiển thị “Bạn làm đúng rồi” hoặc “Rất tiếc bạn làm sai rồi”. Phân tích: Các phần mềm học của trẻ em thường sử dụng rất nhiều câu lệnh if – then để viết ví dụ như: nếu gõ đáp án đúng thì thế nào, nếu chọn hình đúng thì thế nào….Qua bài toán này để học sinh thêm yêu thích lập trình. Chương trình đề xuất: program Hoc_Toan; uses crt; var a,b,c:integer; begin clrscr; write('Nhap a='); readln(a); write('Nhap b='); readln(b); write(a,'+',b,'='); readln(c); if c=a+b then write('Ban lam dung roi!') else write('Ban lam sai roi!'); readln end. Bài 4: Ứng dụng trong toán hình học Bài toán: Nhà trường có một khoảng đất trống sau thư viện và giao cho mỗi lớp một mảnh vườn hình chữ nhật hoặc hình vuông để trồng hoa. 7
- a.i.1.a.Điều kiện là hình vuông hay hình chữ nhật? An muốn biết mảnh vườn của lớp mình là hình vuông hay hình chữ nhật. Em giúp An viết chương trình nhập vào vào độ hai đỉnh đối trên trái và dưới phải của một tứ giác lồi có các cạnh song song với các trục tọa độ và có tọa độ các đỉnh là nguyên (như hình dưới). Hình 3 Kiểm tra xem tứ giác này có phải là hình vuông hay không. Nếu đúng thì đưa ra thông báo “HINH VUONG”, ngược lại thì đưa ra thông báo “HINH CHU NHAT”. Phân tích: Vì các cạnh song song với trục tọa độ nên từ đỉnh trên trái và đỉnh dưới phải có thể suy ra tọa độ của đỉnh trên phải là (u,y). Điều kiện để là hình vuông thêm là hai cạnh kề bằng nhau. Tính độ dài cạnh trên và độ dài cạnh bên phải => điều kiện là: = => = Chương trình đề xuất: program HV_HCN; uses crt; var x,y,u,v:longint; begin clrscr; write('Nhap toa do dinh tren trai (x,y):'); readln(x,y); write('Nhap toa do dinh duoi phai (u,v):'); readln(u,v); 8
- if abs(u-x) = abs(v-y) then write('HINH VUONG') else write('HINH CHU NHAT'); readln end. a.i.1.b. Điều kiện là tam giác và là tam giác gì? Để cho vườn hoa của lớp mình đặc sắc các bạn trong lớp muốn các cây hoa trồng sẽ tạo thành một tam giác vuông. Em giúp An viết chương trình nhập vào 3 số nguyên a, b, c. Kiểm tra xem 3 số đó có tạo thành tam giác hay không? Nếu là tam giác thì có là tam giác vuông hay không? Phân tích: Điều kiện để 3 số là độ dài 3 cạnh của tam giác là tổng độ dài hai cạnh bất kỳ lớn hơn cạnh còn lại. Điều kiện để tam giác đã cho khi biết độ dài 3 cạnh là tam giác vuông dựa vào định lý pitago: bình phương cạnh huyền bằng tổng bình phương hai cạnh góc vuông. Chương trình đề xuất: program Tam_giac; uses crt; var a,b,c:longint; begin clrscr; write('Nhap 3 so nguyen a, b, c:'); readln(a,b,c); if (a+b>c) or (a+c>b) or (b+c>a) then begin write('La tam giac'); if (a*a+b*b=c*c) or (b*b+c*c=a*a) or (c*c+a*a=b*b) then write(' Tam giac vuong') else write('Khong vuong'); end else write('Khong la tam giac'); readln end. Bài 5: Vườn bách thú Bài toán: Lần đầu tiên An được đi chơi vườn bách thú An thích nhất các con sếu vì nhiều con trong số chúng đứng một chân trông rất ngộ nghĩnh, khi đó chân kia không thấy đâu như vốn sinh ra chúng đã chỉ có một chân. An đếm được tất cả a chân. Sau khi đi xem các con thú khác An lại quay về chỗ chuồng sếu. Một số con đã thay đổi vị trí và cách đứng, An đếm lại lần nữa và có số chân là b. Qua số chân thì không thể xác định chính xác có tất cả bao nhiêu con sếu trong chuồng nhưng An vẫn muốn biết có ít nhất và nhiều nhất là bao nhiêu con. Hãy xác định và đưa ra màn hình số lượng sếu tối thiểu và tối đa. 9
- Các số a và b được nhập từ bàn phím. Ví dụ, với a=3 và b=4, số lượng sếu tối thiểu là 2 và tối đa là 3. Phân tích: Số liệu quan sát là a chân. Giả sử là mỗi con đứng 2 chân thì số lượng sếu tối thiểu sẽ là phần nguyên của a+1 chia cho 2. Số lượng sếu tối đa sẽ là a coi như mỗi con đứng 1 chân. Tương tự số liệu quan sát là b cũng vậy. Kết quả ta có bảng dưới đây: Số liệu quan sát Số lượng sếu tối thiểu Số lượng sếu tối đa a [] a b [] b Kết quả max{, } min{a,b} Chương trình đề xuất: program vuon_bach_thu; uses crt; var a,b,c,d,max,min:byte; begin clrscr; write('Nhap a=:'); readln(a); write('Nhap b=:'); readln(b); c:=(a+1)div 2; d:=(b+1) div 2; if c > d then max:=c else max:=d; if a >b then min:=b else min:=a; writeln('So luong seu toi da la:',min); writeln('So luong seu toi thieu la:',max); readln end. Bài 6: Ứng dụng trong tính hoa hồng kinh doanh Bài toán: Tèo thấy bây giờ người ta đăng bán hàng qua facebook rất nhiều. Qua tìm hiểu Tèo thấy đấy là xu hướng kinh doanh tất yếu của thời đại công nghiệp 4.0 nên Tèo cũng muốn thử. Tèo tìm hiểu vì mình đang đi học và chưa có vốn nên Tèo sẽ đăng bài cho một công ty, nếu bán được sản phẩm thì Tèo sẽ được hưởng hoa hồng, với mức hoa hồng theo doanh số bán hàng tháng như sau: 5% nếu tổng doanh số nhỏ hơn hoặc bằng 2 triệu. 10% nếu tổng doanh số lớn hơn 2 triệu và nhỏ hơn hoặc bằng 4 triệu. 20 % nếu tổng doanh số là lớn hơn 4 triệu. 10
- Tèo muốn tính hoa hồng mà mình được hưởng dựa trên doanh số bán hàng. Em hãy giúp Tèo lập trình nhập vào từ bàn phím doanh số bán hàng (theo đơn vị tiền triệu) của Tèo mỗi tháng và đưa ra màn hình số tiền hoa hồng mà Tèo được hưởng? Phân tích: Tương tự bài trên sử dụng câu lệnh if – then lồng nhau với điều kiện là doanh thu nằm trong những điều kiện đề bài cho. Qua bài toán học sinh thấy được xu hướng kinh doanh online trong thời đại công nghệ 4.0 Chương trình đề xuất program Tinh_hoa_hong; uses crt; var a:longint; h:real; begin clrscr; write('Nhap doanh so cua ban (tinh bang trieu):'); readln(a); if a
- Chương trình đề xuất program Xep_loai; uses crt; var a:integer; begin clrscr; write('Nhap diem ne nep:'); readln(a); if a>=160 then write('Loai A') else if(a>=130) and (a=100) and (aq thì cộng 3 điểm cho đội A, nếu p
- if uv then b:=b+3 else begin b:=b+1; c:=b+1; end; writeln('Diem cua doi A la:',a); writeln('Diem cua doi B la:',b); writeln('Diem cua doi C la:',c); readln end. Bài 9: Bầu ban cán sự lớp Bài toán: Đầu năm học lớp Tèo bầu lớp trưởng. Kết quả bầu lớp trưởng cho biết bạn An được p phiếu, bạn Vinh được q phiếu, bạn Quang được r phiếu. Ai có phiếu cao nhất sẽ làm lớp trưởng. Nếu có hai phiếu cùng đạt số phiếu cao nhất hoặc cả ba bạn có cùng số phiếu thì phải bầu lại. Em giúp Tèo viết chương trình xác định tên bạn được làm lớp trưởng hay thông báo “BAU LAI”. Phân tích: Áp dụng thuật toán tìm max trong 3 số p, q, r. Xét nếu p
- if max= r then writeln('Ban la lop truong la: Quang'); end; end; readln end. Bài 10: Tính tiền điện, tiền nước, tiền taxi Bài toán: Tèo đi học về thấy mẹ đang cầm hóa đơn tiền điện và thắc mắc sao tiền điện nhiều thế nhỉ? Tèo muốn kiểm tra xem phần mềm tính điện in hóa đơn điện nhà mình có đúng không? Em giúp Tèo lập trình tính số tiền điện phải trả thực tế (bao gồm cả 10% thuế giá trị giá tăng) mỗi tháng biết bảng giá bán lẻ điện sinh hoạt được tính như sau: Hình 4 Phân tích: Sử dụng các câu lệnh if – then lồng nhau với điều kiện là số điện thuộc 6 mức trên. Qua bài toán học sinh biết được cách tính tiền điện sinh hoạt trong thực tế như thế nào? Thấy được vấn đề mình học được ứng dụng trong cuộc sống hàng ngày ra sao? Chương trình đề xuất: program Tinh_tien_dien; uses crt; var a,t:longint; begin clrscr; write('Nhap so dien tieu thu:'); readln(a); if a50) and (a100) and (a
- else if (a>200) and (a300) and (a
- assign(output,'hotel.out'); rewrite(output); read(n); if n mod 3 = 0 then write(0,' ',n div 3) else if n mod 3 =1 then write(2,' ',(n div 3) -1 else write(1,' ',n div 3); close(input); close(output); end. Bài 12: Gieo xúc xắc (Đề thi HSG lớp 12 tỉnh Vĩnh Phúc năm 2017 – 2018) Bài toán: Bờm và Cuội chơi trò chơi gieo xúc xắc như sau: có thể gieo nhiều lần, ở mỗi lần gieo, điểm của Bờm là số chấm ở mặt ngửa lên trên, điểm của Cuội là số chấm ở mặt úp xuống sàn; khi kết thúc, tổng điểm của mỗi người được mang ra so sánh để phân định thắng thua. Nhắc lại rằng xúc xắc là khối lập phương với số chấm ở các cặp mặt đối diện là 1 – 6, 2 – 5, 3 – 4. Cuộc chơi sắp bắt đầu thì Cuội có việc phải ra ngoài, vì vậy Bờm sẽ là người gieo xúc xắc còn Phú ông được nhờ giám sát. Khi Cuội quay lại, Phú ông cho biết tổng điểm hiện có của Bờm là N, nhưng Phú ông và Bờm đều không nhớ chính xác đã gieo bao nhiêu lần, vì vậy họ gặp khó khăn trong việc xác định tổng điểm của Cuội. Ba người muốn nhờ bạn xác định tổng điểm nhỏ nhất có thể, lớn nhất có thể của Cuội. Dữ liệu: Một dòng duy nhất ghi số nguyên N (1≤N≤1010) là tổng điểm hiện có của Bờm. Kết quả: Một dòng duy nhất ghi hai số nguyên theo thứ tự tổng điểm nhỏ nhất và tổng điểm lớn nhất có thể của Cuội. Ví dụ: dicenor.inp dicenor.out 2 5 12 36 6 216 Phân tích: Để điểm lớn nhất của Cuội thì điểm của Bờm qua mỗi lần gieo sẽ là 1 điểm, như vậy số lần gieo để Cuội được điểm lớn nhất là N, số điểm lớn nhất của Cuội sẽ là 6xN. Tương tự để điểm nhỏ nhất của Cuội thì điểm của Bờm qua mỗi lần gieo sẽ là 6 điểm, như vậy số lần gieo để Cuội được điểm nhỏ nhất là N chia cho 6, số dư còn lại là điểm của Bờm lần cuối, thì điểm của Cuội lần cuối sẽ là 7 – số dư đó (vì tổng 2 mặt của xúc xắc là 7). Chương trình đề xuất: 16
- var n,min,max:int64; begin assign(input,'dicenor.inp'); reset(input); assign(output,'dicenor.out'); rewrite(output); read(n); max:=n*6; if n mod 6= 0 then min:= n div 6 else min:= n div 6 + (7 - (n mod 6)); write(min,' ',max); close(input); close(output); end. Bài 13: IQ Test (Đề thi HSG lớp 12 tỉnh Vĩnh Phúc năm 2014 – 2015) Bài toán: Harry đang chuẩn bị cho kỳ thi kiểm tra IQ và Harry cũng được biết rằng có nhiều câu hỏi dạng: cho một dãy số, tìm số tiếp theo trong dãy. Bây giờ Harry mới chỉ có thể giải quyết các câu hỏi như trên dưới dạng cấp số cộng hoặc cấp số nhân: Cấp số cộng là dãy a1, a1+d, a1+2d, a1+3d,…,a1+(n1)d trong đó a1 và d là bất kỳ. Cấp số nhân là dãy b1, b2=b1q, b3=b2q,…, bn=bn1q trong đó b1≠0, q≠0, q≠1. Hãy giúp Harry viết một chương trình xác định xem dãy đã cho là cấp số cộng hay là cấp số nhân và cũng từ đó để tìm ra số tiếp theo trong dãy. Nếu dãy đã cho không phải là cấp số cộng và cũng không phải là cấp số nhân, hãy in ra 42 (đó là câu trả lời tốt nhất mà Harry có thể tìm được). Bạn cũng sẽ in ra 42 nếu phần tử tiếp theo trong dãy đó không phải là số nguyên. Dĩ nhiên câu trả lời luôn là số nguyên. Dữ liệu: Một dòng duy nhất ghi 4 số nguyên trong đó mỗi số cách nhau ít nhất bởi một dấu cách, mỗi số đều thuộc đoạn [1;1000]. Kết quả: Nếu dãy đã cho là cấp số cộng hoặc cấp số nhân, in ra phần tử tiếp theo trong dãy đã cho. Ngược lại in ra số 42. Ví dụ: iqtest.inp iqtest.out 11 234 457 680 903 32 16 8 4 2 1 89 6 55 42 17
- Phân tích: Gọi 4 số đó là a, b, c, d. Trong toán các em đã được học điều kiện 1 dãy là cấp số cộng, cấp số nhân khi nào? Nên điều kiện là cấp số cộng: a+c=2b và b+d =2c. Điều kiện là cấp số nhân là ac=bb và bd=cc. Chú ý là phải sử dụng if – then lồng nhau vì có 3 trường hợp. Chương trình đề xuất: var a,b,c,d:integer; begin assign(input,'iqtest.inp'); reset(input); assign(output,'iqtest.out'); rewrite(output); read(a,b,c,d); if (a+c=2*b) and (b+d=2*c) then write(2*d-c) else if (a*c=b*b) and (b*d=c*c) then write(d*d/c:0:0) {vì đề cho luôn là số nguyên nên lấy phần phân là 0} else write(42); close(input); close(output); end. Bài 14: Táo quân Bài toán: Có m ông táo và n bà táo được Ngọc Hoàng phân công nhiệm vụ trong năm mới. Đầu tiên Ngọc Hoàng chọn k táo (ông hoặc bà) làm những nhiệm vụ đặc biệt tại các Bộ/Ngành, sau đó Ngọc Hoàng sẽ chọn ra các nhóm, mỗi nhóm gồm đúng 2 ông táo và 1 bà táo để phân công xuống các gia đình dưới hạ giới. Yêu cầu: Hãy giúp Ngọc Hoàng xác định số nhóm nhiều nhất để phân công xuống các gia đình dưới hạ giới. Ví dụ có m=12 ông táo và n=7 bà táo, có k=5 táo phải làm nhiệm vụ đặc biệt. Ngọc Hoàng có thể chọn tối đa 4 nhóm phân xuống các gia đình (8 ông táo và 4 bà táo). Trong 7 tào còn lại (4 ông và 3 bà) có 5 táo làm nhiệm vụ đặc biệt, còn 2 táo không được phân việc. Dữ liệu: Một dòng duy nhất gồm 3 số nguyên dương m, n, k ≤ 109 cách nhau ít nhất một dấu cách. Kết quả: Một số nguyên duy nhất là số nhóm nhiều nhất chọn được để phân xuống các gia đình dưới hạ giới. Ví dụ: laser.input laser.out 12 7 5 4 18
- Phân tích: Vì 1 bà đi với 2 ông nên chúng ta chia làm 2 trường hợp: Trường hợp số bà táo mà lớn hơn số ông táo chia 2 thì tính số k và số n mới hoặc trường hợp số bà táo ít hơn số ông táo chia 2 thì tính số k và m mới. Trường hợp k m div 2 then begin k := k - (n - m div 2); n := m div 2; end; if m > 2 * n then begin k := k - (m - 2 * n); m := 2 * n; end; if k
- Một máy tính có thể lắp ráp được khi khối hệ thống hỗ trợ giao diện tương ứng của màn hình. Yêu cầu: Xác định số máy tính có thể lắp ráp được. Dữ liệu: Gồm 2 dòng : Dòng 1: Ghi 3 số nguyên a1, a2 và a3 (0 ≤ a1, a2, a3 ≤ 100) Dòng 2: Ghi 3 số nguyên b1, b2 và b3 (0 ≤ b1, b2, b3 ≤ 100). Kết quả: Gồm 1 dòng duy nhất ghi kết quả tìm được. Ví dụ: computer.inp computer.out 3 4 6 12 2 11 0 Phân tích: Vì a1 chỉ ghép được với b1 nên so sánh a1 với b1, nếu thừa a1 thì so sánh với b3, nếu thừa b1 thì so sánh với a3. Tương tự cũng so sánh a2 với b2 như trên. Cuối cùng so sánh a3, b3 còn lại. Chương trình đề xuất: var a1,a2,a3,b1,b2,b3,du,du1,s:integer; begin assign(input,'computer.inp'); reset(input); assign(output,'computer.out'); rewrite(output); readln(a1,a2,a3); read(b1,b2,b3); if a1
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Sáng kiến kinh nghiệm THPT: Xây dựng hệ thống câu hỏi bài tập chương Liên kết hóa học - Hóa học 10 - Nâng cao nhằm phát triển năng lực học sinh
24 p | 70 | 10
-
Sáng kiến kinh nghiệm THPT: Xây dựng một số bài toán thực tế, liên môn tạo hứng thú học Toán cho học sinh lớp 10
60 p | 46 | 9
-
Sáng kiến kinh nghiệm THPT: Xây dựng hệ thống câu hỏi trong ôn thi học sinh giỏi phần Vi sinh vật
41 p | 41 | 9
-
Sáng kiến kinh nghiệm THPT: Xây dựng bộ sưu tập video, clip hỗ trợ dạy, học nguyên lí làm việc của động cơ đốt trong
13 p | 16 | 7
-
Sáng kiến kinh nghiệm THPT: Xây dựng kho tư liệu video hỗ trợ dạy học chương trình Tin học 10
11 p | 22 | 7
-
Sáng kiến kinh nghiệm THPT: Xây dựng bài tập về cân bằng Hóa Học nhằm phát triển năng lực giải quyết vấn đề và sáng tạo cho học sinh trung học phổ thông
46 p | 42 | 7
-
Sáng kiến kinh nghiệm THPT: Xây dựng ngân hàng câu hỏi trắc nghiệm khách quan theo chuẩn định tính và định lượng các môn giáo dục nghề phổ thông sử dụng trong kiểm tra, đánh giá và thi nghề phổ thông
75 p | 36 | 5
-
Sáng kiến kinh nghiệm THPT: Thư viện online về kiến thức thực tế và gợi ý nhiệm vụ STEM môn Toán và Khoa học tự nhiên theo chương trình giáo dục 2018
26 p | 7 | 4
-
Sáng kiến kinh nghiệm THPT: Xây dựng và sử dụng hệ thống câu hỏi, bài tập rèn luyện năng lực sáng tạo cho học sinh trong dạy học phần Sinh thái học - chương trình chuyên Trung học phổ thông
81 p | 39 | 4
-
Sáng kiến kinh nghiệm THPT: Xây dựng chuyên đề Phương pháp học tập để nâng cao kết quả học tập học sinh
35 p | 42 | 4
-
Sáng kiến kinh nghiệm THPT: Xây dựng một số giải pháp tích hợp kiến thức địa lý địa phương vào dạy học địa lý lớp 10 THPT - Ban cơ bản
32 p | 36 | 4
-
Sáng kiến kinh nghiệm THPT: Xây dựng trường học hạnh phúc qua công tác chủ nhiệm lớp tại trường THPT Con Cuông
53 p | 14 | 3
-
Sáng kiến kinh nghiệm THPT: Xây dựng và sử dụng câu hỏi trắc nghiệm khách quan trong dạy học Ứng dụng của tích phân nhằm phát huy tính tích cực, chủ động, sáng tạo của học sinh
24 p | 50 | 3
-
Sáng kiến kinh nghiệm THPT: Xây dựng hiệu quả kế hoạch phong trào Nghiên cứu khoa học kỹ thuật trong học sinh tại Trường THPT Chuyên Thoại Ngọc Hầu
10 p | 28 | 3
-
Sáng kiến kinh nghiệm THPT: Xây dựng hệ thống thi trực tuyến cấp chứng chỉ Công nghệ thông tin tại Trung tâm Tin học - Ngoại ngữ và Hướng nghiệp tỉnh Ninh Bình
8 p | 23 | 3
-
Sáng kiến kinh nghiệm THPT: Ứng dụng công nghệ thông tin xây dựng hệ thống trực tuyến quản lý và giải quyết nghỉ phép cho học sinh trường PT DTNT THPT tỉnh Hòa Bình
35 p | 12 | 3
-
Sáng kiến kinh nghiệm THPT: Xây dựng câu hỏi trắc nghiệm cho nhiều đối tượng học sinh
14 p | 35 | 2
-
Sáng kiến kinh nghiệm THPT: Xây dựng và sử dụng hệ thống bài tập phần Định luật bảo toàn vật lí lớp 10 THPT nhằm giúp học sinh phát huy tính tích cực nhận thức, rèn luyện tư duy sáng tạo
63 p | 34 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn