Bài Tập

Chia sẻ bởi Nguyễn Quốc Vạn Tường | Ngày 24/10/2018 | 92

Chia sẻ tài liệu: Bài Tập thuộc Tin học 8

Nội dung tài liệu:

PHÒNG GIÁO DỤC VÀ ĐÀO TẠO TP QUY NHƠN
TRƯỜNG THCS NGUYỄN HUỆ
GV: NGUYỄN QUỐC VẠN TƯỜNG
CHÀO MỪNG
CÁC THẦY CÔ VỀ DỰ GIỜ
Tin Học 8
var : array[..] of ;
+ Dữ liệu kiểu mảng: là tập hợp hữu hạn các phần tử, có thứ tự, mọi phần tử đều có cùng một kiểu dữ liệu, gọi là kiểu của phần tử. Việc sắp thứ tự được thực hiện bằng cách gán cho mỗi phần tử một chỉ số.
+ Cách khai báo mảng trong Pascal:
Kiểm tra bài cũ:
Câu 1: Thế nào là dữ liệu kiểu mảng và cách khai báo?
Câu 2: Viết chương trình nhập N số nguyên từ bàn phím và in ra màn hình số lớn nhất và N cũng được nhập từ bàn phím?
Quan sát chương trình





Var i,n,max:Integer;
A : Array [1..100] of Integer;
BEGIN
Write(‘ Hay nhap do dai cua day so, N= ‘);Readln(n);
Writeln(‘Hay nhap cac phan tu cua day so ‘);
For i:=1 to n do
Begin
write(‘a[ ‘,i,’] =‘);
readln(a[i]);
End;
Max := a[1] ;
For i:=2 to n do
If max < a[i] then Max:=a[i];
Writeln (‘So lon nhat la Max =‘,max);
Readln;
END.




BÀI TẬP (tiếp theo)
Viết chương trình sử dụng biến mảng để nhập từ bàn phím
các phần tử của một dãy số. Độ dài của dãy cũng được nhập từ bàn phím.
Bài 5 trang 78 -SGK
* Input:
Số nguyên N
N số nguyên x1, x2, …, xn (n ≥ 1).
* Output:
Nhập dữ liệu cho N và N số nguyên x1, x2, …, xn (n ≥ 1).
Ta sử dụng bao nhiêu biến để viết chương trình?
Tiết: 47
var
x:array[1..100] of real;
n,i:integer;

BEGIN
write(`Nhap so phan tu= `);readln(n);
for i:=1 to n do
begin
write(`Nhap phan tu thu `,i,`= `);
readln(x[i]);
end;
Readln
END.
Chương trình:
Viết chương trình sử dụng biến mảng để giải quyết bài toán
nêu ở ví dụ 1.
Bài 6 trang 78 -SGK
Output:
- Mức thu nhập trung bình của các hộ gia đình trong địa phương.
- Độ lệch giữa mức thu nhập của từng hộ gia đình so với mức thu nhập trung bình.
Input:
- Số hộ trong địa phương
- Thu nhập của mỗi hộ trong địa phương đó
Thuật toán : Tính mức thu nhập trung bình của các hộ.

Bước 1: Nhập N và x1, x2.,…, xn.
Bước 2: xtb  0, i  1
Bước 3: Nếu i > n thì chuyển tới bước 6
Bước 4: xtb<-- xtb+xi
Bước 5: i  i+1 ; quay lại bước 3
Bước 6: xtb<--xtb>Bước 7: In kết quả xtb và kết thúc thuật toán
uses crt;
var x:array[1..100] of real;
n,i:byte;
dlc,xtb:real;
BEGIN
clrscr;
write(`Nhap so ho gia dinh= `);readln(n);
xtb:=0;
for i:=1 to n do
begin
write(`Muc thu nhap cua ho gia dinh `,i,`= `);
readln(x[i]);
xtb:=xtb+x[i];
end;
xtb:=xtb/n;
writeln(`-------------------------------------------------------`);
writeln(`=> Thu nhap trung binh cua cac ho: `);
writeln(xtb:16:2);
writeln(`-------------------------------------------------------`);
writeln(` Do lech tung ho so voi thu nhap trung binh: `);
for i:=1 to n do
writeln(`Ho thu `,i,`: `,x[i]-xtb:10:2);
* Tính độ lệch giữa mức thu nhập của từng hộ gia đình so với mức thu nhập trung bình.
Độ lệch chuẩn là một khái niệm rất quan trọng trong đánh giá dữ liệu thống kê.
Giả sử ta có bộ dữ liệu thống kê gồm n phần tử có giá trị tương ứng là x1, x2, …, xn. Kí hiệu xTB là giá trị trung bình của x1, x2, …, xn. Khi đó độ lệch chuẩn của bộ dữ liệu trên được tính theo công thức sau:
(căn bậc hai của tổng các bình phương độ lệch từng phần tử so với giá trị trung bình chia cho số phần tử).
Hãy viết chương trình tính độ lệch chuẩn của dữ liêu thống kê về mức thu nhập của các hộ gia đình nêu ở Ví dụ 1(SGK tin học 8, trang73).
Lưu ý: Giá trị độ lệch chuẩn phản ánh mức độ thu nhập của các hộ gia đình trong 1 địa phương nêu ở ví dụ 1, nếu giá trị độ lệch chuẩn lớn thì mức độ phân hóa giàu nghèo của địa phương càng rõ rệt (độ chênh lệch về mức thu nhập của người giàu và người nghèo lớn).
Bài 7 trang 78 -SGK
* Input:
Số hộ trong địa phương
Thu nhập của mỗi hộ trong địa phương đó
* Output:
Độ lệch chuẩn bằng công thức sau:
Thuật toán
Bước 1: Nhập N và a1, a2.,…, an.
Bước 2: Tính xtb,
Bước 3: Tính độ lệch giữa các hộ so với thu nhập trung bình: xi-xtb
Bước 4: Tính tổng các bình phương độ lệch từng phần tử so
với giá trị trung bình:
Bước 5: Tính:
Bước 6: In kết quả và kết thúc thuật toán
xi
xTB
xi - xTB
xtb:=xtb/n;
writeln(`-------------------------------------------------------`);
writeln(`=> Thu nhap trung binh cua cac ho: `);
writeln(xtb:16:2);
writeln(`-------------------------------------------------------`);
writeln(`=> Do lech tung ho so voi thu nhap trung binh: `);
for i:=1 to n do
writeln(`Ho `,i,`: `,x[i]-xtb:10:2);
dlc:=0;
for i:=1 to n do
dlc:=dlc+sqr(x[i]-xtb);
dlc:=sqrt(dlc/n);
writeln(`-------------------------------------------------------`);
writeln(`=> Do lech chuan ve muc thu nhap cua tung ho gia dinh: `);
writeln(dlc:16:2);
writeln(`-------------------------------------------------------`);
readln
END.
Bài tập 1: Tính tổng các số dương trong dãy số
Input: Nhập N và dãy số A={a1., a2.,…, an.}
Output: Giá trị tổng các số dương trong dãy
Thuật toán
Bước 1: Nhập N và a1, a2.,…, an.
Bước 2: S  0, i  1
Bước 3: Nếu i > n thì chuyển tới bước 6
Bước 4: Nếu ai > 0 thì S  S+ ai
Bước 5: i  i+1 ; quay lại bước 3

Bước 6: In kết quả S và kết thúc thuật toán
Củng cố
Bài 1: Em hãy chọn đáp án đúng:
A. Dữ liệu kiểu mảng là tập hợp các phần tử không có thứ tự và mọi phần tử có cùng một kiểu dữ liệu.
B. Dữ liệu kiểu mảng là tập hợp các phần tử có thứ tự và mỗi một phần tử trong mảng có thể có các kiểu dữ liệu khác nhau .
C. Dữ liệu kiểu mảng là tập hợp các phần tử có thứ tự và mọi phần tử có cùng một kiểu dữ liệu.
Làm việc với dãy số (Tiết 1)
b) Var X: Array[3.. 4.8] of Integer;
c) Var X: Array[10 .. 1] of Integer;
d) Var X: Array[4 .. 10] of Real;
a) Var X: Array[10 , 13] of Real;
Bài 2: Cách khai báo biến mảng sau đây đúng hay sai? Khoanh tròn vào chỗ sai (nếu có).
a) Sửa dấu , thành dấu ..
b) Sửa 4.8 thành số nguyên
c) Chỉ số cuối phải >= chỉ số đầu
d) Đúng
Bài 9:
Củng cố
(B) Dùng trong lệnh lặp để duyệt các phần tử của mảng.
(C) Dùng trong lệnh lặp để duyệt các phần tử của mảng.
(D) Dùng để quản lý kích thước mảng.
(A) 0;
(B) +1 hoặc -1
(C) Một giá trị bất kì;
(D) Thêm/bớt một giá trị khác 0;
Bài 3: Phát biểu nào dưới đây về chỉ số mảng là phù hợp?
Bài 4: Trong mỗi vòng lặp của lệnh lặp for...to ...do của Pascal,
biến đếm thay đổi như thế nào?
(A) Dùng để truy cập đến một pần tử bất kì trong mảng.
(E) +1
Bài 6: Cho đoạn chương trình sau:
S:=0;
For i:=1 to n do S:=S+A[i];
Đoạn chương trình trên thực hiện:
(A) Tính tổng các phần tử của mảng.
(B) In ra màn hình mảng A.
(C) Đếm số phần tử mảng A.
(D) Tính tổng của S và các phần tử mảng A.
Bài 5: Hãy cho biết giá trị của mảng M có n phần tử sau khi thực hiện đoạn chương trình sau:
for i:=1 to n do
if M[i]<0 then m[i]:=0;
(A) Mọi phần tử của M đều bằng 0.
(B) Mọi phần tử của mảng M lớn hơn hoặc bằng 0;
(C) Mọi phần tử của M đều nhỏ hơn 0;
(D) Đoạn lệnh trên sai;
1
2
3
4
5
Có 3 chữ cái: Là từ khóa để khai báo biến
trong chương trình Pascal?
Có 4 chữ cái: Là câu lệnh trong chương trình Pascal
dùng để dừng chương trình chờ ta nhập giá trị cho biến?
Có 4 chữ cái: Là từ khóa trong chương trình Pascal
dùng để thể hiện những biến kiểu thực?
Có 3 chữ cái: Là tên của hàm tìm giá trị lớn nhất?
Có 6 chữ cái: Chỉ số đầu, chỉ số cuối trong khai báo mảng
Thường là những số…………….?
HỌC MÀ VUI - VUI MÀ HỌC
Dữ liệu kiểu mảng là một dãy (tập hợp) hữu hạn các phần tử có thứ tự mọi phần tử đều có cùng một kiểu dữ liệu.
Việc gán giá trị, nhập giá trị và tính toán với các giá trị của một phần tử trong biến mảng được thực hiện thông qua chỉ số tương ứng của phần tử đó.(tên mảng[chỉ số])
Sử dụng biến mảng và câu lệnh lặp giúp cho việc viết chương trình dễ dàng và ngắn gọn hơn.
Ghi nhớ
- Học bài cũ
- Xem lại các bài tập đã làm
- Chuẩn bị Bài 1 của bài thực hành 7
HƯỚNG DẪN VỀ NHÀ
KÍNH CHÚC THẦY CÔ GIÁO SỨC KHOẺ
CHÚC CÁC EM HỌC GIỎI
* 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 ...

Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)