tớch và đề xuất phương phỏp giải hay.
b. Nội dung:
Cho mảng A gồm n phần tử. Viết chương trỡnh tạo mảng B[1..n], trong đú B[i] là tổng giỏ trị của i phần tử đầu tiờn của mảng A.
Chương trỡnh minh họa:
Program tinh; Uses crt;
Const nmax=250;
Type myarray=array[1..nmax] of integer; Var i,n,j:integer;
a,b: myarray; Begin
Clrscr; Randomize; Write(‘Nhập n=’); readln(n); For i:=1 to n do a[i]:=random(300)-random(300); For i:=1 to n do Write (a[i]:5); Writeln ; For i:=1 to n do Begin b[i]:=0; For j:=1 to i do b[i]:=b[i] + a[i]; End; For i:=1 to n do Write(a[i]:7); Writeln ; Readln; End. c. Cỏc bước tiến hành:
HOẠT ĐỘNG CỦA GIÁO VIấN HOẠT ĐỘNG CỦA HỌC SINH 1. Xỏc định bài toỏn.
Viết đề bài lờn bảng.
- Yờu cầu: xỏc định dữ liệu vào, dữ liệu ra? - Gợi ý để học sinh đề xuất thuật toỏn thụ.
2. Giới thiệu chương trỡnh chưa cải tiến.
- Viết chương trỡnh diễn đạt thuật toỏn lờn bảng - Thực hiện chương trỡnh để học sinh biết thời gian thực hiện và kết quả của chương trỡnh. - Hỏi: Trong chương trỡnh phải thực hiện bao nhiờu phộp cộng?
- Hỏi: Cú cỏch nào để cải tiến?
- Lệnh này được thay lệnh nào trong chương
1. Quan sỏt đề bài và trả lời cõu hỏi.
- vào : mảng A gồm n phần tử. - ra : mảng B gồm n phần tử.
- Tại vị trớ i ta tớnh tổng giỏ trị cỏc phần tử từ 1 đến i.
2. Quan sỏt chương trỡnh trờn bảng.
- Quan sỏt giỏo viờn thực hiện, nhận xột về thời gian thực hiện chương trỡnh.
- Phải thực hiện n(n+1)/2 phộp cộng. - Để tớnh bước thứ i,ta sử dụng kết quả đó tớnh ở bước thứ i-1.
b[i]:= b[i-1] + a[i]; - Thay đoạn lệnh:
trỡnh? Viết ở vị trớ nào?
3. Yờu cầu học sinh viết chương trỡnh hoàn chỉnh.
- Cựng một bài toỏn, cú nhiều cỏch giải quyết khỏc nhau. Người lập trỡnh cần chọn cỏch sao cho mỏy thực hiện nhanh nhất.
For j:=1 to i do b[i]:=b[i] + a[i];
3. Soạn chương trỡnh vào mỏy,thực hiện chương trỡnh và thụng thực hiện chương trỡnh và thụng bỏo kết quả.
- Nhận xột về thời gian thực hiện của chương trỡnh này so với chương trỡnh trước khi cải tiến.