Giáo án môn Tin học lớp 11, tiết 48+49: Bài tập

Văn Học

Cộng tác viên
Xu
0
TIẾT 48 + 49: BÀI TẬP

1. Ổn định tổ chức

Lớp​
Ngày dạy​
Sĩ số​
Họ tên học sinh vắng​
Ghi chú​
2. Kiểm tra bài cũ

3. Dạy bài mới


Bài 1:
Viết chương trình chuyển đổi số tự nhiên N cho trước sang hệ cơ số 2 bằng việc xây dựng hàm chuyển đổi.

Hướng dẫn:

- Xây dựng hàm Dec2Bin( ) chuyển đổi từ số tự nhiên sang số nhị phân.

o Sử dụng biến S để lưu giá trị số nhị phân của N. Khởi gán bằng 0.

o Tiến hành lặp chuyển đổi cơ số: Lặp trong khi mà N > 0

§ SoDu = số dư của N chia cho 2.

§ N = N chia cho 2.

§ Bổ sung chữ số SoDu vào số S thành một chữ số

o Trả về kết quả cuối cùng của S.

- Viết thân chöông trình chính với nội dung dùng để kiểm tra kết quả thực hiện của hàm.

o Khai báo biến N, M

o Thông báo nhập, nhập giá trị cho biến N

o Gán giá trị M bằng kết quả trả về của hàm Dec2Bin( N )

o In thông báo về kết quả số nhị phân chuyển đổi được (giá trị của M)

o Gọi hàm readln trước khi kết thúc chöông trình

Chương trình:

Program Doi_Co_So;


Uses crt;

Var N:integer;

{ 1. Thu tuc chuyen so tu nhien n cho truoc sang ket qua tra ve he co so 2 }

Function Dec2Bin ( n:integer ):integer;

Var S,So,Du:integer;

Begin

S := 0; So := n ;

While ( So > 0) do

Begin

Du := So mod 2 ;

So := So div 2 ;

S := S * 10 + Du;

End;

Dec2Bin:= S ;

End;



{ 2. Than chuong trinh chinh dap ung yeu cau bai toan }

BEGIN


clrscr;

write( 'Nhap so N =' ); readln(N );

writeln(' Dang nhi phan cua N la ', Dec2Bin(N) );

readln;

END.



Bài 2:
Viết các hàm USCLN(a, b) và BSCNN(a, b).

Hướng dẫn: Khai báo hàm USCLN có:

Tên hàm: USCLN

Kiểu dữ liệu trả về: integer

Tham số: 2 tham trị là int a, int b

Giá trị trả về: chính là giá trị ước số chung lớn nhất của a và b.

Xử lý tìm USCLN, BSCNN: Dựa trên ví dụ đã có ở phần trước.

Nội dung hàm:

Function USCLN( a, b : Integer) : Integer;


Var Sodu:integer;

Begin

While (b <> 0) do

Begin

Sodu:= a mod b;

a := b;

b := Sodu;

End;

USCLN := a;

End;

{Tuong tu ham BSCNN(a, b : Integer)}

Function BSCNN( a, b : Integer) : Integer;

Var k :integer;

Begin

For k := a to a*b do { Lap voi moi i co gia tri tu a den 1}

If ((k mod a = 0) and ( k mod b = 0)) then { Kiem tra a, b cung chia het cho k? }

Break; { break de thoat, luu giu lai gia tri cua k.}

BSCNN:= k;

End;





Bài 3: Viết hàm kiểm tra số N có phải là số nguyên tố hay không?

Hướng dẫn: Khai báo hàm kiểm tra số nguyên tố có:

Tên hàm: KiemtraSNT

Dữ liệu trả về: int, ( 0 nếu không phải là số nguyên tố, là 1 nếu là số nguyên tố )

Tham số: tham trị là int N, số cần kiểm tra.

Xử lý kiểm tra: Dựa trên ví dụ đã có ở phần trước.

Nội dung hàm:

Function KiemtraSNT( N : Integer ) : Boolean;


Var flag : Boolean;

i : Integer;

Begin

flag := True; { Khoi gan gia tri dung cho ktrSNT}

For i := 2 to N-1 do { Lap voi moi i co gia tri tu 2 den N-1}

If ( N mod i = 0 ) then { Kiem tra xem N co’ chia het cho i hay khong}

flag:=false; { Neu dung thi khong con la so nguyen to nua}

KiemtraSNT:=flag;

End;



Cải tiến, không sử dụng biến phụ:

Function KiemtraSN( N : Integer ) : Integer;


Var i :integer;

Begin

For i := 2 to N-1 do { Lap voi moi i co gia tri tu 2 den N-1}

If ( N mod i = 0 ) then { Kiem tra xem N co’ chia het cho i hay khong}

Writeln('N khongla SNT') { Neu dung thi khong con la so nguyen to nua}

Else

Writeln('N la SNT'); { N la SNT}

End;





Bài 4
: Viết chương trình thực hiện lần lượt các công việc sau:

- Lập thủ tục nhập ba số thực dương a , b , c từ bàn phím .

- Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay không ?

- Viết hàm tính diện tích của tam giác .

- Viết hoàn thiện chương trình chính.

Chương trình

Program Tam_Giac;


Uses crt;

Var a,b,c : Integer;



{ 1. Thu tuc nhap}

Procedure NhapABC (Var a, b, c : Integer);


Begin

Write( 'Nhap a:' ); Readln( a );

Write( 'Nhap b:' ); Readln( b );

Write( 'Nhap c:' ); Readln( c );

End;



{ 2. Ham tinh dien tich}

Function Dientich( a, b, c:Integer ) : Real;


Var dt,p : Real;

Begin

p := (a+b+c)/2;

dt := sqrt(p* (p-a)*(p-b)*(p-c));

Dientich := dt;

End;



{ 3. Thu tuc kiem tra va In kqua tinh dien tich (neu la tam giac) }

Procedure KiemTra_InDienTich ( a,b,c:Integer);


Begin

If ((a+b>c) and (b+c>a) and (a+c>b)) then

Writeln(' Ba canh tren tao thanh tam giac.dien tich', Dientich(a,b,c) )

Else

Writeln('Ba canh tren khongtao thanh tam giac');

End;



{ 3. Than chuong trinh chinh }

BEGIN


NhapABC(a,b,c);

KiemTra_InDienTich (a,b,c);

END.





Bài 5: Viết chương trình hoàn chỉnh thực hiện phân tích ra N ra thành các thừa số nguyên tố.

Ví dụ: N = 1260 = 2 . 2 . 3 . 3 . 5 . 7

Hướng dẫn:

- Viết hàm nhập số N. Lưu ý, hàm nhập cần truyền tham số N theo dạng tham biến để lưu lại giá trị đã nhập vào.

- Viết hàm phân tích số N ra các thừa số nguyên tố và in các thừa số đó ra màn hình với ý tưởng thuật toán:

o Chia N cho số nguyên tố u (nhỏ nhất là 2).

o Trong khi N còn chia hết cho u thì tiến hành phân tích N với u là thừa số. Giảm N đi u lần.

o Nếu N không chia hết cho u, thi tăng u lên 1.

o Quá trình lặp lại với

§ u từng bước tăng lên 1 nếu N không chia hết cho u.

§ N từng bước giảm xuống u lần nếu N chia hết cho u.

o Quá trình lặp lại đến một mức u tăng lên và N giảm xuống để N = u, khi đó giá trị mới của N sẽ là 1.

Chương trình:

Program Phan_Tich_Thua_So;


Uses crt;

Var N : integer;

{ 1. Thu tuc nhap so N. }

Procedure NhapSoN( var NN : Integer );


Begin

NN := 0; {Gan khoi dau bang 0 de vao vong lap, vong lap dung khi nhap khac 0}

While ( N = 0 ) do

Begin

Write( 'Nhap N=' ); Readln(NN );

End;

End;

{ 2. Thu tuc phan tich N ra thanh cac thua so nguyen to }

Procedure PhantichSoN ( Var N1 : Integer );


Var u,dem:Integer;

Begin

If ( N1 > 1 ) Then

Begin

u := 2; dem := 0;

While ( N1 > 1 ) do

If ( N1 mod u = 0 ) Then

Begin

dem:=dem+1;

Writeln( u);

N1 := N1 div u;

End

Else

u:=u+1;

End

Else

Writeln(' Khong the phan tich duoc' );

End;

{ 3. Than chuong trinh chinh }

BEGIN


Clrscr;

Writeln('Phan tich so N thanh tich cua cac so nguyen to :' );

NhapSoN( N );

PhantichSoN( N );

Writeln ('Nhan Enter de ket thuc ...' );

Readln;

END.
 

Đính kèm

  • Tin học lớp 11, tiết 48+49.docx
    20 KB · Lượt xem: 1

Định hướng - GAC

Diễn đàn GAC - Giáo Án Chuẩn, nơi các Giáo viên, Phhs có thể tìm kiếm và chia sẻ những tài liệu giáo dục, những câu chuyện nghề nghiệp. Và cùng nhau thảo luận các chủ đề nuôi dạy con trẻ, chăm sóc sức khỏe, kinh doanh, du lịch, cuộc sống, tình yêu, hạnh phúc gia đình,...
Shoutbox
Hãy đăng nhập để bắt đầu trò chuyện
  1. No shouts have been posted yet.
Nơi bạn có thể chia sẻ, hỏi đáp nhanh với tất cả mọi người

Đang có mặt

Không có thành viên trực tuyến.
Top