1. Trang chủ
  2. » Luận Văn - Báo Cáo

Các bước giải một bài toán cho lớp bài toán trên máy vi tính

13 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 220,79 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phát triển chương trình bằng cách tinh chế từng bước Một bài toán ta có thể đưa ra nhiều cách giải khác nhau, song là một giáo viên thì chúng ta cần giúp học sinh viết chương trình làm s[r]

Trang 1

A Đặt vấn đề

1 Lý do

  nay  ta   các  trên    ! " tranh # ngành công

con

ngành công  thông tin Ngày xa 5 con ) không  !*7 không 

vi tính thì coi  là không  !*7 không   - / khi  %< => máy

vi tính

các bài D & mà thôi ?

D phân tích, I 17 J2 1 hoá, khái quát hoá L !# và !M   là phát

giáo khoa > 0  =R cho * sinh # cách phân tích / trình Vì / * sinh

nhà

2 Cơ sở thực tiễn

Trong quá trình =" tôi / L O các em * sinh W !'2 các em

giây có

!  hàng > phút mà " có 0 cho 6 K2& sai Song G N tâm 2

Ngôn

 #2 !8  & quan tâm và  chính !3  có  #2 2\ sách do  #2 tác

“ các bước giải một bài toán cho lớp bài toán trên máy vi tính” %< => G ngôn N / trình pascal

B- Giải quyết các vấn đề

[C pháp C &  & các bài toán trong tin * không B dùng !0

Trang 2

tin ra (Output)

trên ngôn N pascal thì ' các  :

1 Xác !d các bài toán

2 Tìm 2/ toán

3 C trình

4 " <7 %< !I chC trình

I- Xác định bài toán

1 Khái niệm bài toán

Trong quá trình

liên >  & K2 các bài toán Trong 28 %\ là 1 29 các bài toán mà ta

Song

C trình / L là cao L - Nên   ! các  bài toán vào  & cho các

em

ta  !* !# @ xác !d nó : A->B

Trong

 & bài toán

- B là 6 2/ W> tiêu ' !" !1 hay cái & tìm, & làm ra khi 6 thúc bài toán

-  Là suy

  J A !  B

2 Bài toán trên máy vi tính

Bài toán trên máy  mang !' !Y các tính L Y bài toán I quát trên,

- A: là !a thông tin vào (Input )

- B: là ! thông tin ra( Output)

-  : là ch phép   !I J A !  B

3 Một số ví dụ

Ví => 1: Tính =  tích hình N

/ -Ta ' xác !d cho bài toán:

+ Thông tin vào:  #2 dài là " a,  #2 8 là " b

+ Thông tin ra: n K2& =  tích khi !a a,b vào

+ Các thông tin '    thông tin 

- F' l1 ! a,b vào ( cho a=3,b=4)

- áp => công h tính =  tích hình N /  a*b

Trang 3

- n K2& in ra là 12.

Ví => 2: Cho 2 %\ , nhiên a, b Tìm  %\ chung  L Y chúng

Các b các !d bài toán:

+ Xác !d thông tin vào: hai %\ , nhiên a,b

+ Xác

d là  Y a và d là  Y b

d là %\  L trong / các  chung Y a, b + Xác !d các thao tác    thông tin

Xây =, N2 " các thao tác cho phép tính !1 d J a và b

Nh/ a =16 b= 24 -> d =8

Ví => 3: Tìm L & các %\ nguyên \ trong các %\ nguyên N !1 / vào

J bàn phím:

+ Xác

mc!d thông tin ra: Các %\ nguyên \ ( chia  cho nó và %\ 1)

II- Tìm thuật toán

tìm ra !1 Output bài toán

W8 bài toán ta có 4 cách 0   2/ toán: Các  xác !d G ) 7 /

Ví dụ: Tìm  %\ chung  L Y 2 %\ nguyên =C a,b ta có 0  &

G các cách trên

Cách 1: Các b ước xác định bài toán bằng lời:

- B 1: 4/ 2 %\ nguyên dC là a,b

- ] 2: So sánh giá d a và b 4 2 a G b thì sang b 3, 1 "

a khác b thì sang b 4

- ] 3: Tìm !1  %\ chung là a và 6 thúc chC trình

- B 4: 4 2 a  C b thì  %\ chung  L là a và quay O "

 2 41 "  %\ chung là b và quay O "  2

Cách 2: Giải bài toán bằng sơ đồ

- Có hình thoi  0   các thao tác so sánh

- Hình N / 0   các phép tính toán, các câu 

- Hình ôvan 0   U !'2 và 6 thúc

- Các

Trang 4

a=b !(

sai

Z( Sai

a<>b

Cách 3: Dùng ngôn N r trình

]U !'2

4/ a, b

While a khác b

IF a>b then thay a :=a -b Else thay b:=b-a;

n thúc in ra USCLN (a,b)

Cách 4: chC trình hoàn B (dùng ngôn N pascal)

PROGRAM USCLN;

USES CRT;

VAR

a,b, :integer;

BEGIN

CLRSCR;

WRITE('nhap 2 gia tri m,n=');READLN(a,b);

Begin

a, b

UCLN là a

END

b:= b - a a:= b - a

Trang 5

WHILE m<>n DO

IF a>b THEN a:=a –b

else b:=b-a;

WRITELN('uoc so chung lon nhat cua 2 so’,a:5);

READLN

END.

III- Viết chương trình

F/ trình là dùng ngôn N máy vi tính > 0 nào (ngôn N Pascal) !0

= k & 2/ toán, L2 trúc =N  2 thành câu  !0 máy tính có 0 ,  

1 Kỹ năng lập trình

- Rèn 2 !1 cho * sinh 6} D cài !M thành công các 2/ toán G

- ZS * là 6} D thì B có 0 có !1 thông qua rèn 2 tích

, Kinh

trên máy tính có 0 cho 6 KY @

-2 Phát triển chương trình bằng cách tinh chế từng bước

viên thì chúng ta ' giúp * sinh  C trình làm sao ng) xem nhìn vào có 0 =k  02 !1 bài toán !3 là gì ? Do !3   tinh B các b cho bài toán trong máy tính là C pháp khoa *7 có  \ giúp ta phân tích các

phC pháp phát  0 =' =' !0 20 các ý O ra thành C trình hoàn

B-3 Phương pháp tinh chế từng bước

W8 chC trình U !'2 !1  G ) ,  ^    ` 0  

%, phân tích I 0 Y ng) / trình !1 0  

O J b sau các câu  !1 phân tích chi C7 G N ) khác nhau C h  %, phân tích công   thành các   r chi C

=k  02 và B xác C- Song ngôn N / rình pascal ng) / trình có 0

!a ra C pháp tinh B J b là 0   t duy  & K2 L !# bài toán J trên 52\ trong !3 các  là h # ngôn N / trình làm sao cho bài toán !a ra !1 C pháp / trình \ 27 sáng

Trang 6

%<-4 Ví dụ

Tìm L & các %\ nguyên \ trong các %\ nguyên N !1 / vào J bàn phím

a Tinh chế lần 1

- FL 2 /

NT= [ ] ^!0 h các %\ nguyên \ tìm !1`

S = [2, N] ^ / các %\ ' xét )

- Tìm %\ !'2 tiên trong S !a vào NT

-

- Q\ !'2 tiên còn " Y S là %\ nguyên \- P  > quá trình cho !  khi S=[]

- c2L NT

b Tinh chế lần 2

]U !'2

NT: = [ ]

S = [2, N]

Repeat

Tìm %\ !'2 tiên trong S

NT:= NT+ [S0]

0 Until S=[ ];

c2L NT;

n thúc;

c Tinh chế lấn 3 ( chương trình hoàn chỉnh)

Program nguyen_to;

Const

N=100;

Type

nguyen=1 N;

var

NT, S:set of nguyen;

s0,I:integer;

begin

NT:=[]; S:=[2 N];S0:=2;

repeat

while not (S0 in S) do

S0:=S0+1; NT:=NT+[S0];I:=S0;

While I<=N do

Begin

s:=S-[i];I:=I+S0;

Trang 7

End;

until S=[];

for I:= 1 to n do

If I in Nt then Write(I:4);

readln

end

d Tinh chế lần 4 Rõ ràng L2 trúc =N  2 / 1 Set of nguyen tuy =k  02

linh

Program nguyen_to;

Const

N=100;

var

a:array[1 N] of boolean;

i,j:integer;

begin

a[1]:=false;

for i:=2 to N do a[i]:=true;

for i:= 2 to N div 2 do

for j:= 2 to N div i do

a[i*j]:=false;

for i:= 1 to N do

if a[i] then

write(i:3);

readln

end

e Tinh chế lần 5

Trong ngôn

N<10000

dùng nh sau:

Program nguyen_to;

uses crt;

var

i,j,k,n:integer;

begin

repeat

write('nhap n=');readln(n);

until n>= 2;

for i:= 2 to n do

begin

k:=0;

Trang 8

for j:= 2 to trunc(sqrt(i)) do

if i mod j=0 then k:= 1;

if k=0 then write(i:3);

end;

readln

end

./ !3 là 6} D / trình ) / trình có 0 tinh B C trình

IV- Chạy Thử , thay đổi, kiểm tra chương trình

1 Chạy thử

W8 C trình !S  xong ch U !S " !1 trên máy vi tính !0 cho

Ví dụ: Tìm %\  L trong 3 %\ a,b,c nguyên =C !1 / vào J bàn

phím

F' 1: Program tim_so;

uses crt;

var

a,b,c:integer;

begin

clrscr;

write('nhap 3 so=');readln(a,b,c);

if a<b then a:=b

else if a<c then a:=c;

write('so lon nhat la ',a);

readln

End

. chC trình này  " !1 song ! %\ có lúc !(7 có lúc sai 2g 28 vào lúc / giá d a,b,c{  2 ta / h , a=5,b=7,c=9

Thì %A cho ta 6 K2& %\  L là 7 / thì sai hoàn toàn}

Do !3 ng) / trình ' &  cách tìm 9 - QN 9 7 ! #2 B 

" chC trình  là 6} D quan * Y ) / trình ./  => trên

!0 6 K2& luôn !( thì ta có 0  " chC trình

F' 2: Program tim_so;

uses crt;

var

a,b,c,t:integer;

begin

clrscr;

Trang 9

write('nhap 3 so=');readln(a,b,c);

t:=a;

if t<b then t:=b;

if t<c then t:=c;

write('so lon nhat la ',t);

readln

End

4 2 /

2 Phân loại lỗi và cách sửa lỗi

-

2/ toán sai, tìm 2/ toán khác + làm " J !'2

Ví dụ:  C trình tính I S= (n !1 / vào J

n

1

3

1 2

1

bàn phím)

* sinh  C trình khai báo   S 28 6 02 =N  2 nguyên thì

C trình %A không ,   !1 phép toán tính I- Do / !0 ,  

!1 phép toán thì khai báo   S là 28 6 02 =N  2

, F9 # trình , [& xem " 2/ toán, phân tích " J trên 52\ =

!0 !M " cho !(  2/ toán

Ví dụ chC trình  & C trình / L ax+b=0  a,b !1

/ vào J bàn phím

program ptb1;

var

a,b:real;

begin

write('nhap cac he so=');readln(a,b);

if a<>0 then

writeln('moi so deu la nghiem');

else

if b=0 then writeln('phuong trinh co nghiem',-b/a:4:2)

else

Trang 10

writeln('phuong trinh vo nghiem') readln

end

. C trình trên hoàn toàn có 0 " !1 song 6 K2& %A không

6 K2& !( nh yêu '2 :

program ptb1;

var

a,b:real;

begin

write('nhap cac he so=');readln(a,b);

if a<>0 then

if b=0 then

writeln('phuong trinh vo nghiem')

else

writeln('phuong trinh co nghiem',-b/a:4:2)

else

writeln('moi so deu la nghiem');

readln

end

- F9 # cú pháp:  " cho !( cú pháp Y ngôn N / trình

mà mình ! %<

=>-Ví

TO thì %A không có

+-3 Kiểm tra

tìm

ý:

- 4 2 6O !'2 G 8 chC trình(test ) r nh các giá d !M  

^!H là =k d 9

L ` Làm  #2 các 8 test ng & ! =" tránh M ! M " các 8 test C

, Nên

!, Y chC trình

4 Thay đổi chương trình

W8 C trình !S  xong, !S " < \ ,  & K2 !( bài toán

mà ta mong

Trang 11

quan

tam giác hay không PJ !3 ta có 0 20 nó sang =" là các " !3 thoã mãn tam giác cân, !#2 hay là tính =  tích Y tam giác !3-

- Tính I cho N %\ nguyên !'2 tiên !1 / vào J bàn phím PJ !3 ta có 0  0 khai tính giai J7 tìm %\ nguyên \7 !8 dài Y dãy %\ !37 tính trung bình 8 cho dãy %\

-

- Tính tin

- Tính 20 20 ChC trình có 0 %< !I

- Tính trong sáng: =k !*7 =k

 02 Tính N2  2 " C trình nhanh và \ ít dung 1 8  # không gian và ) gian

Tóm

 !1 phân ra  #2 công   con !0 J !3 !a ra !1 phC pháp \

2- Song ) / trình ' rèn 2 !0 có ý h # các K2 !d liên quan

C- Kết thúc vấn đề

trong

ng1 " là cho các 6 K2& khác nhau Z #2 !3 h r cho L ) / trình

Bài toán cho 6 K2& sai là do  #2 nguyên nhân mà tôi !S trình bày O

'  nh

+ * 6 02 =N  2 sai

+ 6 K2& in ra O =" có quy cách và không quy cách

+ Phép gán sai ví =>  bài toán tính I ban !'2 ta & gán S:=0;  2 gán S:= 1; thì cho 6 K2& sai Hay Bài toán tính tích thì phép gán & 1 O

" ban !'2 S:=1;

Trang 12

./ !0  & K2 !1 bài toán trên máy tính !  < %< => ngôn N

/ trình pascal nói chung và Y  8 nói riêng Z0 nâng cao L 1 =" chúng ta không B =" lý 2 suông mà ' &  6 1 , hành Z0

Tóm

2# !" Z@ )  \ 1 C trình toán !S * !  N ' nào

các C trình này so  cách tính tay O 9 nào

giáo

! còn  #2  2 sót Mong / !1 %, góp ý Y các ' cô giáo cùng

 " bè !0 !1 hoàn  

C-Œ-Tôi xin chân thành cảm ơn !

B?n ph? ,ngày 1 tháng12 năm 2010

Người viết

4> H?ng Thuý

Ngày đăng: 29/03/2021, 20:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w