Bài tập và thực hành 4
Chia sẻ bởi Nguyễn Thị Thùy Anh |
Ngày 10/05/2019 |
59
Chia sẻ tài liệu: Bài tập và thực hành 4 thuộc Tin học 11
Nội dung tài liệu:
Kính chào quý thầy cô cùng các em học sinh 11B5
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
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
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] 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
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
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;
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.
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;
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.
If A[i] If A[i]>A[i+1] then
Minh họa
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;
Type ArrInt=Array[1..nmax] of Integer;
Var n,i,j,t
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;
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]:5);
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;
If A[i]>A[i+1] then
Việc thực hiện tráo đổi khi thoả mãn đk gì?
:integer;
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;
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
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
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] 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
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
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!
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
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
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] 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
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
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;
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.
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;
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.
If A[i] If A[i]>A[i+1] then
Minh họa
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;
Type ArrInt=Array[1..nmax] of Integer;
Var n,i,j,t
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;
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]:5);
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;
If A[i]>A[i+1] then
Việc thực hiện tráo đổi khi thoả mãn đk gì?
:integer;
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;
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
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
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] 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
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
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!
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Thị Thùy Anh
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)