Bài 11. Kiểu mảng
Chia sẻ bởi Trần Lê Tài |
Ngày 10/05/2019 |
48
Chia sẻ tài liệu: Bài 11. Kiểu mảng thuộc Tin học 11
Nội dung tài liệu:
Giáo viên HD: Đỗ Tất Thắng
Giáo sinh TT: Trần Lê Tài
Bài : Kiểu mảng
(Tiết 3)
Câu 1: Viết 2 ví dụ câu lệnh minh họa hai cách khai báo mảng một chiều và nói rõ ý nghĩa của 2 câu lệnh vừa viết?
Tên của mảng?
Số lượng phần tử trong mảng là bao nhiêu?
Kiểu dữ liệu của các phần tử?
Câu 2: Dung lượng cấp phát cho 2 ví dụ vừa viết là bao nhiêu? Viết câu lệnh nhập xuất các phần tử trong mảng?
KIỂM TRA BÀI CŨ
Bài 1: Nhập vào một mảng A có n phần tử(n<=100) số nguyên. Tính tổng S các phần tử trong mảng, và đếm các phần tử dương có trong mảng?
Output:
+Tổng S.
+ Số các phần tử dương có trong mảng.
Input: Mảng A gồm n phần tử (n<=100)thuộc kiểu số nguyên.
-Bước 1: i:=1,S :=0;
-Bước 2: S = S+ A[i];
-Bước 3: i:=i+1, nếu i <=n thì quay lại bước thứ 2, ngược lại sang bước 4
-Bước 4: Đưa ra màn hình kết thúc lặp
Thuật toán tính Tổng và Đếm các số dương
d:=0;
Nếu a[i] > 0 thì d tăng thêm 1;
Phần khai báo tên chương trình, khai báo thư viện và khai báo biến
program Mang_1_chieu;
uses crt;
var a: array[1..100] of integer;
n, s, d, i: integer;
begin
clrscr;
write(`Hãy nhập giá tri n vào:`);
readln(n);
Hãy nhập giá tri n vào: 3
Source Code
1
Run Output
2
Variable
3
S = 0
n = 3
d = 0
S = 0
n = 3
d = 0
A[1] = 1
A[2] = -2
A[3] = 3
begin
clrscr;
write(`Hãy nhập giá tri a vào:`);
readln(a);
for i:=1 to n do
begin
writeln(`Hãy nhập giá trị vào phần tử a[`,i,`] :`); readln(a[i]);
end;
begin
clrscr;
write(`Hãy nhập giá tri a vào:`);
readln(a);
for i:=1 to n do
begin
writeln(`Hãy nhập giá trị vào phần tử a[`,i,`] :`); readln(a[i]);
for i:=1 to n do
writeln(a[i]);
{…}
end;
Hãy nhập giá tri n vào: 3
Hãy nhập giá tri n vào A[1]:1
Hãy nhập giá tri n vào A[2]:-2
Hãy nhập giá tri n vào A[3]:3
Hãy nhập giá tri n vào: 3
Hãy nhập giá tri n vào A[1]:1
Hãy nhập giá tri n vào A[2]:-2
Hãy nhập giá tri n vào A[3]:3
1 -2 3
...
S:=0; d:=0;
for i:=1 to n do
begin
s:= s + a[i];
if(a[i]>0)then
d:=d+1;
end;
writeln(‘Tổng các PT:S =’,s);
writeln(‘Số các PT dương:’,d);
end.
Hãy nhập giá tri n vào: 3
Hãy nhập giá tri n vào A[1]:1
Hãy nhập giá tri n vào A[2]:-2
Hãy nhập giá tri n vào A[3]:3
1 -2 3
Tổng các PT S = 0 + 1 = 1
Số các PT dương: 1
S = 1
n = 3
d = 1
A[1] = 1
A[2] = -2
A[3] = 3
S = -1
n = 3
d = 1
A[1] = 1
A[2] = -2
A[3] = 3
Hãy nhập giá tri n vào: 3
Hãy nhập giá tri n vào A[1]:1
Hãy nhập giá tri n vào A[2]:-2
Hãy nhập giá tri n vào A[3]:3
1 -2 3
Tổng các PT S = -1 + 3 = 2
Số các PT dương: 2
S = 2
n = 3
d = 2
A[1] = 1
A[2] = -2
A[3] = 3
MINH HỌA THUẬT TOÁN
Hãy nhập giá tri n vào: 3
Hãy nhập giá tri n vào A[1]:1
Hãy nhập giá tri n vào A[2]:-2
Hãy nhập giá tri n vào A[3]:3
1 -2 3
Tổng các PT S = 1 + (-2) = -1
Số các PT dương: 1
Bài 2: Nhập xuất mảng một chiều, hãy:
+Tìm gt min, max
+Liệt kê các gt âm (-)
+Tính tổng các giá trị dương (+).
+Sắp xếp mảng tăng dần.
program Bai_2;
uses crt;
var a : array [1..100] of integer;
n,i: integer;
begin
clrscr;
Randomize;
writeln(`Nhap n: `); readln(n);
for i:=1 to n do
a[i]:= random(200) - random(200) ;
writeln(`in mang:`);
for i:=1 to n do
write (a[i]:7);
Gọi thủ tục này để có thể sử dụng hàm random
Lệnh sinh ngẫu nhiên cho mảng a lấy giá trị từ -199 -> 199
Nhập liệu cho mảng dùng hàm Random
-Max:=a[1]; Min:=1;
-Với mỗi i chạy từ 2 n thì thực hiên câu lệnh:
+Nếu a[i] > max thì gán Max:=a[i]
+Nếu a[i] < min thì gán Min:=a[i]
- Xuất giá trị Min, Max.
Thuật toán tìm Min, Max
- Với mỗi i chạy từ 1 n thực hiên câu lệnh
+ Nếu a[i] < 0 thì xuất ra màn hình, ngược lại gán S:= S+a[i]
- Xuất tổng S.
Liệt kê các phần tử âm Thuật toán tính Tổng các số dương
Thuật toán sắp xếp dãy số tăng
- Với mỗi i chạy từ 1 n-1 thực hiện câu lệnh:
+ Với mỗi j chạy từ i +1 n thực hiện câu lệnh:
. tam:= a[i];
. a[i]:=a[j];
. a[j]:= tam;
Xuất ra màn hình mảng đã sắp xếp.
{---Hàm tìm Min,Max---}
max:=a[1]; min:=a[1];
for i:=1 to n do
begin
write(a[i]:7);
if (a[i]>max) then max:=a[i];
if (a[i] end;
writeln;
writeln(`Gia tri max trong mang: `,max);
writeln(`Gia tri min trong mang: `,min);
{---Hàm tìm a[i]<0, và tổng các số dương ---}
writeln(`Cac gia tri am co trong mang:`);
for i:=1 to n do
begin
if (a[i]<0) then write(a[i]:7)
else s:=s+a[i];
end;
writeln;
writeln(`Tong cua cac so duong trong mang: S = `,s);
{Hàm sắp xếp mảng tăng}
for i:=1 to n-1 do
for j:=i+1 to n do
if (a[i]>a[j]) then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
writeln(`Mang duoc sap xep tang dan!`);
for i:=1 to n do
write (a[i]:7);
readln end.
Chương trình
Bài tập về nhà
Tham khảo thêm các bài trong SGK trang 63,64,65 và trả lời câu hỏi 1—4. Làm thêm các bài tập 5 – SGK, trang 79
Chuẩn bị bài mảng 2 chiều.
Chúc các bạn học tốt
Giáo sinh TT: Trần Lê Tài
Bài : Kiểu mảng
(Tiết 3)
Câu 1: Viết 2 ví dụ câu lệnh minh họa hai cách khai báo mảng một chiều và nói rõ ý nghĩa của 2 câu lệnh vừa viết?
Tên của mảng?
Số lượng phần tử trong mảng là bao nhiêu?
Kiểu dữ liệu của các phần tử?
Câu 2: Dung lượng cấp phát cho 2 ví dụ vừa viết là bao nhiêu? Viết câu lệnh nhập xuất các phần tử trong mảng?
KIỂM TRA BÀI CŨ
Bài 1: Nhập vào một mảng A có n phần tử(n<=100) số nguyên. Tính tổng S các phần tử trong mảng, và đếm các phần tử dương có trong mảng?
Output:
+Tổng S.
+ Số các phần tử dương có trong mảng.
Input: Mảng A gồm n phần tử (n<=100)thuộc kiểu số nguyên.
-Bước 1: i:=1,S :=0;
-Bước 2: S = S+ A[i];
-Bước 3: i:=i+1, nếu i <=n thì quay lại bước thứ 2, ngược lại sang bước 4
-Bước 4: Đưa ra màn hình kết thúc lặp
Thuật toán tính Tổng và Đếm các số dương
d:=0;
Nếu a[i] > 0 thì d tăng thêm 1;
Phần khai báo tên chương trình, khai báo thư viện và khai báo biến
program Mang_1_chieu;
uses crt;
var a: array[1..100] of integer;
n, s, d, i: integer;
begin
clrscr;
write(`Hãy nhập giá tri n vào:`);
readln(n);
Hãy nhập giá tri n vào: 3
Source Code
1
Run Output
2
Variable
3
S = 0
n = 3
d = 0
S = 0
n = 3
d = 0
A[1] = 1
A[2] = -2
A[3] = 3
begin
clrscr;
write(`Hãy nhập giá tri a vào:`);
readln(a);
for i:=1 to n do
begin
writeln(`Hãy nhập giá trị vào phần tử a[`,i,`] :`); readln(a[i]);
end;
begin
clrscr;
write(`Hãy nhập giá tri a vào:`);
readln(a);
for i:=1 to n do
begin
writeln(`Hãy nhập giá trị vào phần tử a[`,i,`] :`); readln(a[i]);
for i:=1 to n do
writeln(a[i]);
{…}
end;
Hãy nhập giá tri n vào: 3
Hãy nhập giá tri n vào A[1]:1
Hãy nhập giá tri n vào A[2]:-2
Hãy nhập giá tri n vào A[3]:3
Hãy nhập giá tri n vào: 3
Hãy nhập giá tri n vào A[1]:1
Hãy nhập giá tri n vào A[2]:-2
Hãy nhập giá tri n vào A[3]:3
1 -2 3
...
S:=0; d:=0;
for i:=1 to n do
begin
s:= s + a[i];
if(a[i]>0)then
d:=d+1;
end;
writeln(‘Tổng các PT:S =’,s);
writeln(‘Số các PT dương:’,d);
end.
Hãy nhập giá tri n vào: 3
Hãy nhập giá tri n vào A[1]:1
Hãy nhập giá tri n vào A[2]:-2
Hãy nhập giá tri n vào A[3]:3
1 -2 3
Tổng các PT S = 0 + 1 = 1
Số các PT dương: 1
S = 1
n = 3
d = 1
A[1] = 1
A[2] = -2
A[3] = 3
S = -1
n = 3
d = 1
A[1] = 1
A[2] = -2
A[3] = 3
Hãy nhập giá tri n vào: 3
Hãy nhập giá tri n vào A[1]:1
Hãy nhập giá tri n vào A[2]:-2
Hãy nhập giá tri n vào A[3]:3
1 -2 3
Tổng các PT S = -1 + 3 = 2
Số các PT dương: 2
S = 2
n = 3
d = 2
A[1] = 1
A[2] = -2
A[3] = 3
MINH HỌA THUẬT TOÁN
Hãy nhập giá tri n vào: 3
Hãy nhập giá tri n vào A[1]:1
Hãy nhập giá tri n vào A[2]:-2
Hãy nhập giá tri n vào A[3]:3
1 -2 3
Tổng các PT S = 1 + (-2) = -1
Số các PT dương: 1
Bài 2: Nhập xuất mảng một chiều, hãy:
+Tìm gt min, max
+Liệt kê các gt âm (-)
+Tính tổng các giá trị dương (+).
+Sắp xếp mảng tăng dần.
program Bai_2;
uses crt;
var a : array [1..100] of integer;
n,i: integer;
begin
clrscr;
Randomize;
writeln(`Nhap n: `); readln(n);
for i:=1 to n do
a[i]:= random(200) - random(200) ;
writeln(`in mang:`);
for i:=1 to n do
write (a[i]:7);
Gọi thủ tục này để có thể sử dụng hàm random
Lệnh sinh ngẫu nhiên cho mảng a lấy giá trị từ -199 -> 199
Nhập liệu cho mảng dùng hàm Random
-Max:=a[1]; Min:=1;
-Với mỗi i chạy từ 2 n thì thực hiên câu lệnh:
+Nếu a[i] > max thì gán Max:=a[i]
+Nếu a[i] < min thì gán Min:=a[i]
- Xuất giá trị Min, Max.
Thuật toán tìm Min, Max
- Với mỗi i chạy từ 1 n thực hiên câu lệnh
+ Nếu a[i] < 0 thì xuất ra màn hình, ngược lại gán S:= S+a[i]
- Xuất tổng S.
Liệt kê các phần tử âm Thuật toán tính Tổng các số dương
Thuật toán sắp xếp dãy số tăng
- Với mỗi i chạy từ 1 n-1 thực hiện câu lệnh:
+ Với mỗi j chạy từ i +1 n thực hiện câu lệnh:
. tam:= a[i];
. a[i]:=a[j];
. a[j]:= tam;
Xuất ra màn hình mảng đã sắp xếp.
{---Hàm tìm Min,Max---}
max:=a[1]; min:=a[1];
for i:=1 to n do
begin
write(a[i]:7);
if (a[i]>max) then max:=a[i];
if (a[i]
writeln;
writeln(`Gia tri max trong mang: `,max);
writeln(`Gia tri min trong mang: `,min);
{---Hàm tìm a[i]<0, và tổng các số dương ---}
writeln(`Cac gia tri am co trong mang:`);
for i:=1 to n do
begin
if (a[i]<0) then write(a[i]:7)
else s:=s+a[i];
end;
writeln;
writeln(`Tong cua cac so duong trong mang: S = `,s);
{Hàm sắp xếp mảng tăng}
for i:=1 to n-1 do
for j:=i+1 to n do
if (a[i]>a[j]) then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
writeln(`Mang duoc sap xep tang dan!`);
for i:=1 to n do
write (a[i]:7);
readln end.
Chương trình
Bài tập về nhà
Tham khảo thêm các bài trong SGK trang 63,64,65 và trả lời câu hỏi 1—4. Làm thêm các bài tập 5 – SGK, trang 79
Chuẩn bị bài mảng 2 chiều.
Chúc các bạn học tốt
* 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ẻ: Trần Lê Tài
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)