1. Trang chủ
  2. » Giáo án - Bài giảng

Bài Tập Và Thực Hành 4(T1)

15 393 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 15
Dung lượng 368,5 KB

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

Nội dung

Giải thích các thành phần trong chương trình... Giải thích các thành phần trong chương trình... Nhập dữ liệu từ bàn phím gồm N phẩn tử B.. Tạo ngẫu nhiên 1 dãy số gồm N phần tử có trị tu

Trang 2

BÀI TẬP VÀ THỰC HÀNH 4 TIẾT 1 Kiểm tra bài cũ

Bài 1 cho chương trình sau:

Const nmax=100;

Type MyArray= Array [1 nmax] of integer;

Var A:MyArray;

n,i,Dem:integer;

Begin

Randomize;

Write('Nhap so luong phan tu N= ');readln(n);

For i:=1 to N do A[i]:=Random(301)-Random(301);

For i:=1 to N do Write(a[i]:5);

Writeln;

Dem:=0;

For i:=1 to N do

If A[i] >0 then Dem:=Dem+1;

Write(Dem);

Readln

End.

Giải thích các thành phần trong chương trình

Trang 3

Dem:=0;

For i:=1 to N do

if A[i] >0 then Dem:=Dem+1;

Write(Dem);

Giả sử Nhập N=5

15 -48 -35 200 12

Kết quả in ra màn hình như thế nào?

Đáp án: 3

Trang 4

Bài 2: Cho chương trình sau:

Const nmax=100;

Type MyArray=Array[1 nmax] of integer;

Var A:MyArray;

n,i,CS:integer;

Begin

Write('Nhap so luong phan tu N= ');readln(n);

For i:=1 to N do

Begin

Write('A[',i,']= ');

Readln(A[i]);

End;

cs:=1

For i:=2 to N do

if A[i] <A[cs] then Cs:=i;

Write(A[cs]);

Readln

End.

Giả sử nhập N=5

2 -5 8 6 12

Hỏi kết quả in ra màn hình như thế nào?

Minh họa

Trang 5

Bài tập và thực hành 4 (tiết 1)

Trang 6

BÀI TẬP VÀ THỰC HÀNH 4 TIẾT 1

Bài tập 1a:

Const nmax=250;

Type ArrInt= Array [1 nmax] of Integer;

Var n,i,j,t:integer;

A:ArrInt;

Begin

Randomize;

Write('Nhap so luong phan tu N= ');readln(n);

For i:=1 to N do A[i]:=Random(301)-Random(301);

For i:=1 to N do Write(a[i]:4);

Writeln;

For j:=N downto 2 do

For i:=1 to j-1 do

If A[i]>A[i+1] then

Begin

t:=A[i];

A[i]:=A[i+1];

A[i+1]:=t

End;

Writeln('Day so sau khi duoc sap xep: ');

For i:=1 to N do Write(A[i]:4);

Readln;

End

Giải thích các thành phần trong chương trình

Trang 7

BÀI TẬP VÀ THỰC HÀNH 4 TIẾT 1

Bài tập 1a: Soạn thảo chương trình sau: Nhập N= 10 và xem kết quả Lưu File với tên sxgiamB5

Const nmax=250;

A:ArrInt;

Begin

Randomize;

Write('Nhap so luong phan tu N= ');readln(n);

For i:=1 to N do A[i]:=Random(301)-Random(301);

Writeln;

t:=A[i];

A[i]:=A[i+1];

A[i+1]:=t;

Writeln('Day so sau khi duoc sap xep: ');

Readln;

End

Trang 8

BÀI TẬP VÀ THỰC HÀNH 4 TIẾT 1

Bài tập 1: Từ chương trình trên hãy sửa lại để có chương trình sắp xếp các phần

tử của mảng thành 1 dãy không tăng

Const nmax=250;

A:ArrInt;

Begin

Randomize;

Write('Nhap so luong phan tu N= ');readln(n);

For i:=1 to N do A[i]:=Random(301)-Random(301);

Writeln;

t:=A[i];

A[i]:=A[i+1];

A[i+1]:=t;

Writeln('Day so sau khi duoc sap xep: ');

Readln;

End

If A[i]<A[i+1] then

Minh họa

Trang 9

BÀI TẬP VÀ THỰC HÀNH 4 TIẾT 1

Bài tập 1b: Khai báo thêm biến Dem và bổ sung vào chương trình những câu

lệnh cần thiết để biến Dem tính số lần thực hiện tráo đổi

Const nmax=250;

A:ArrInt;

Begin

Randomize;

Write('Nhap so luong phan tu N= ');readln(n);

For i:=1 to N do A[i]:=Random(301)-Random(301);

For i:=1 to N do Write(a[i]:5);

Writeln;

t:=A[i];A[i]:=A[i+1]; A[i+1]:=t;

Writeln('Day so sau khi duoc sap xep: ');

Writeln;

Readln;

End

Minh họa

Dem Dem:=0;

Dem:=dem+1;

Write('So lan trao doi la: ',Dem);

,Dem

Dem:=0;

Dem:=dem+1;

Write('So lan trao doi la: ',Dem);

Đoạn lệnh nào thể hiện một lần tráo đổi giữa 2 phần tử

Begin

t:=A[i];A[i]:=A[i+1]; A[i+1]:=t;

End;

Việc thực hiện tráo đổi khi thoả mãn đk

gì?

:integer;

Trang 10

BÀI TẬP VÀ THỰC HÀNH 4 TIẾT 1

Bài tập 1b: Mở bài tập 1a và sửa lại chương trình cách thêm vào các câu lệnh để được chương trình sắp xếp thành 1 dãy không giảm và số lần tráo đồi

Const nmax=250;

Type ArrInt= Array [1 nmax] of Integer;

Var n,i,j,t,Dem:integer;

A:ArrInt;

Begin

Randomize;

Write('Nhap so luong phan tu N= ');readln(n);

For i:=1 to N do A[i]:=Random(301)-Random(301); For i:=1 to N do Write(a[i]:5);

Writeln;

Trang 11

BÀI TẬP VÀ THỰC HÀNH 4 TIẾT 1

Bài tập 1b: Mở bài tập 1a và sửa lại chương trình cách thêm vào các câu lệnh để được chương trình sắp xếp thành 1 dãy không giảm và số lần tráo đồi

Dem:=0;

For j:=N downto 2 do

For i:=1 to j-1 do

If A[i]>A[i+1] then

Begin

t:=A[i];

A[i]:=A[i+1];

A[i+1]:=t;

Dem:=dem+1;

End;

Writeln('Day sau khi duoc sap xep: ');

For i:=1 to N do Write(A[i]:5);

Writeln;

Write('So lan trao doi la: ',Dem);

Readln;

End

Minh họa

Trang 12

Cũng cố

Bài 1: Đoạn lệnh sau thực hiện công việc gì?

Write(‘Nhap so luong phan tu N= ‘);Readln(N);

For i:=1 to N do A[i]:= random(101)-Random(101);

For i:=1 to N do Write(A[i]:5);

A Nhập dữ liệu từ bàn phím gồm N phẩn tử

B Tạo ngẫu nhiên 1 dãy số gồm N phần tử có trị tuyệt đối không quá 100

C Tạo ngẫu nhiên 1 dãy số gồm N phần tử có trị tuyệt đối không quá 300

Trang 13

Cũng cố

Bài 2: Cho đoạn chương trình sau

For j:=N downto 2 do

For i:=1 to j-1 do

If A[i]<A[i+1] then

Begin

t:=A[i]; A[i]:=A[i+1]; A[i+1]:=t

End;

For i:=1 to N do Write(A[i]:4);

Giã sử khi chạy chương trình nhập dãy số: -3 9 -15 21 -3 10 Hỏi chương trình in ra màn hình như thế nào?

Đáp án: 21 10 9 -3 -3 -15

Trang 14

Dặn dò

- Về nhà hoàn thiện bài tập 1b vào vở

- Xem trước bài tập 2 trong BT và TH 4

- Sử dụng giải thuật khác để sắp xếp các phần tử của dãy thành một dãy không giảm

Trang 15

Bài giảng đến đây kết thúc Kính mong sự góp ý của quý thầy cô

và các em học sinh để bài giảng sau

đ ợc tốt hơn Xin chân thành cảm ơn!

Ngày đăng: 26/04/2015, 10:00

TỪ KHÓA LIÊN QUAN

w