1. Trang chủ
  2. » Trang tĩnh

Bài giảng tin học 8: Làm việc với đãy số-Mảng một chiều và bài tập Full

15 43 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 520,32 KB

Nội dung

Khi thực hiện gọi thủ tục NhapMang(A,n) trong chương trình chính thì ta có thể gán n bằng một giá trị số nguyên cụ thể như NhapMang(A,5) hoặc có thể nhập một số phần tử bất kỳ bằng lệ[r]

(1)

1

MẢNG MỘT CHIỀU TRONG PASCAL

1. Khái niệm mảng- dãy số

Dữ liệu kiểu mảng tập hợp hữu hạn phần tử có thứ tự có kiểu liệu Thứ tự xếp phần tử đến phần tử cuối mảng Thứ tự số phần tử mảng

Ví dụ: Cho mảng A gồm có phần tử số ngun mảng A có dạng sau

1

8 4 70 43 57 5 1

Vậy A mảng hay dãy liên tiếp gồm có phần tử (có số từ đến 7) mang giá trị số nguyên

Trong A[1]=8 tức phần tử thứ mảng A có giá trị Tương tự ta có A[2]=4

A[3]=70 A[4]=43 A[5]=57 A[6]=5 A[7]=1

Để lấy giá trị phần tử vị trí i mảng A ta cần truy xuất trực tiếp đến số phần tử A[i]

Khi khai báo biến có kiểu liệu kiểu mảng biến gọi biến mảng Giá trị biến mảng mảng dãy có thứ tự

2. Khai báo biến mảng

Để khai báo biến mảng pascal người ta dùng cú pháp sau: Cú pháp:

TYPE <Kiểu mảng> = ARRAY [chỉ số đầu số cuối] OF <Kiểu liệu>; Chỉ số

(2)

2 VAR <Biến mảng>:<Kiểu mảng>; khai báo trực tiếp:

VAR <Biến mảng> : ARRAY [chỉ số đầu số cuối] OF <Kiểu liệu>; Ví dụ:

TYPE Mangnguyen = Array[1 100] of Integer; MangKytu = Array[Byte] of Char;

VAR A: Mangnguyen; C: MangKytu; hoặc:

VAR A: Array[1 100] of Integer; C: Array[Byte] of Char;

Với cách khai báo ta có A mảng số nguyên có 100 phần tử

3. Nhập giá trị cho mảng

Vì mảng dãy liên tiếp phần tử có kiểu liệu nên ta sử dụng câu lệnh lặp FOR…TO…DO để nhập

FOR <biến số>:=1 TO <Số phần tử> DO Readln(biến mảng[biến số]);

Ví dụ:

for i:=1 to 10 readln(A[i]);

Trong A biến mảng; i số phần tử mảng A

(3)

3

Lưu ý: thủ tục nhập mảng A tham biến

Khi thực chương trình cho phép nhập vào giá trị cho mảng giống viết bình thường mà không dùng thủ tục

(4)

4

Bây thấy rõ ràng phần tử a[i] giá trị nhập vào tương ứng chúng mảng

4. In giá trị mảng

Sau nhập giá trị cho mảng Để in giá trị mảng hình thực sau:

for i:=1 to 10 write(A[i]);

Lệnh thực in hình 10 phần tử mảng A

(5)

5 Kết thực cho ta:

Phần in mảng thể cho thấy dãy số gồm có 10 phần tử

5. Nhập mảng với số phần tử

Ở phần xây dựng mảng số nguyên với 10 phần tử for i:=1 to 10

(6)

6

Như với việc nhập vào số phần tử n tùy ý thay đổi cấu trúc thủ tục NhapMang với tham số hình thức mảng A số phần tử n

Lưu ý: thủ tục nhập mảng A tham biến n tham trị Khi thực gọi thủ tục NhapMang(A,n) chương trình ta gán n giá trị số nguyên cụ thể NhapMang(A,5) nhập số phần tử lệnh readln thông dụng

(7)

7 6. Chương trình hồn chỉnh

program dayso; uses crt;

type Mang=array[1 100] of integer; var A:Mang; i,pt:integer;

//CHUONG TRINH CON NHAP MANG

procedure NhapMang(var A:Mang; n:integer); begin

for i:=1 to n Begin

write('a[',i,']='); readln(A[i]); end;

end;

//CHUONG TRINH CON IN MANG procedure InMang(A:Mang; n:integer); Begin

for i:=1 to n write(a[i]:4); End;

//CHUONG TRINH CHINH Begin

clrscr;

write('Nhap so phan tu mang:'); readln(pt); NhapMang(A,pt);

writeln('MANG SAU KHI NHAP'); InMang(a,pt);

readln; End

7. Đọc mảng vào file

Để đọc giá trị mạng lưu vào file riêng ta thực thứ tự lệnh sau chương trình chính:

assign(t,'tên file'); với t biến kiểu tệp rewrite(t); mở tệp ghi

//ghi phần tử mảng A vào tệp for i:=1 to pt

write(t,A[i]); close(t);

(8)

8

write('Nhap so phan tu mang:'); readln(pt); NhapMang(A,pt);

assign(t,'b.inp'); rewrite(t); writeln(t,pt); for i:=1 to pt

write(t,a[i]); close(t);

Sau thực đoạn chương trình nhập mảng A gồm pt phần tử Tiếp đến mở file b.inp thực ghi tất phần tử mảng A vào file b.inp

Sau chương trình hồn chỉnh cho việc ghi liệu mảng vào file Program dayso;

Uses crt;

Type mang=array[1 100] of integer; Var a:mang; m,i,pt:integer;t:text; //chuong trinh nhap mang

Procedure nhapmang(var a:mang; var n:integer); Begin

for i:=1 to n begin

write('a[',i,']='); readln(a[i]); end;

End;

//chuong trinh in mang

Procedure inmang(a:mang; n:integer); Begin

for i:=1 to n write(a[i]:4); End;

//chuong trinh chinh Begin

Clrscr;

Write('nhap so phan tu mang:'); readln(pt); Nhapmang(a,pt);

Assign(t,'dulieu.inp'); Rewrite(t);

(9)

9 For i:=1 to pt

Write(t,a[i]); Close(t);

Writeln('mang sau nhap'); Assign(t,'inmang.out');

Rewrite(t); Writeln(t,pt); For i:=1 to pt

Write(t,a[i]); Close(t);

Readln; End

8. Đọc liệu từ file có vào mảng

Để đọc liệu từ file có vào mảng để tiến hành tính tốn, xử lí ta thực sau:

Assign(f,’tên file’); Reset(f);

For i:=1 to n read(f, A[i]); close(f)

Lưu ý: f biến kiểu file

Tên file: tên file có liệu cần đọc vào mảng A Ví dụ: Cho file dulieu.inp mẫu sau:

(10)

10

Hãy đọc liệu từ file dulieu.inp lưu vào file ketqua.out sau:

Sau tồn chương trình program dayso;

uses crt;

type Mang=array[1 100] of integer; var A:Mang; i,n,d,t:integer;

f:text; Begin

clrscr;

assign(f,'f:\vong2\dulieu.inp'); reset(f);

readln(f,n); for i:=1 to n read(f,A[i]); readln(f);

close(f);

assign(f,'f:\vong2\ketqua.out'); rewrite(f);

for i:=1 to n write(f,a[i],' '); close(f);

(11)

11 BÀI TẬP

Bài Cho mảng số nguyên A gồ 10 phần tử Hãy viết chương trình thực nhập mảng, in mảng sau nhập hàng Khoảng cách phần tử khoảng trắng

Ví dụ:

Bài Hãy viết chương trình nhập vào mảng số ngun gồm n phần tử (n>0, n<=100) Tính tổng giá trị mảng vừa nhập

Bài Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

 Tính tổng giá trị lẻ mảng vừa nhập  Tính tổng giá trị chẵn mảng vừa nhập

 Tính tổng giá trị có số lẻ mảng vừa nhập  Tính tổng giá trị có số chẵn mảng vừa nhập

Bài Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

Tính tổng giá trị số nguyên tố Tính tổng giá trị số phương Tính tổng giá trị số hồn hảo

Bài Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

(12)

12

Bài Hãy thực tất tập từ đến dạng file gồm có file dulieu.inp có dịng: Dịng đầu chứa số phần tử mảng dòng thứ chứa giá trị mảng Ví dụ

File ketqua.out chứa kết thực chương trình

Bài Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In phần tử có giá trị lớn

Bài Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In phần tử có giá trị nhỏ

Bài Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In phần tử có giá trị lớn thứ

Bài 10 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In phần tử có giá trị nhỏ thứ

Bài 11 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In phần tử có giá trị nhỏ trung bình cộng mảng

Bài 12 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In phần tử có giá trị lớn số k với k nhập vào từ bàn phím

Bài 13 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100) K số nguyên nhập tùy ý

Tìm k in tất vị trí k mảng Nếu khơng tìm thấy trả FALSE

Bài 14 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

(13)

13

Bài 15 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In số lần xuất nhiều giá trị phần tử

Bài 16 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In phần tử xuất lần

Bài 17 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100) K số nguyên nhập tùy ý

Tìm k in vị trí k mảng Nếu khơng tìm thấy trả FALSE

Bài 18 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100) K số nguyên nhập tùy ý

Tìm K thay K giá trị X tùy ý vị trí K mảng

Bài 19 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100) K số nguyên nhập tùy ý

Tìm K thay K giá trị X tùy ý tất vị trí K mảng

Bài 20 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In dãy tăng liên tục Ví dụ

Mảng A gồm 1 Thì dãy tăng liên tục

4

Bài 21 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In dãy tăng liên tục dài

Bài 22 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In dãy tăng liên tục có tổng lớn

Bài 23 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

In dãy khơng giảm dài Ví dụ

(14)

14

Thì dãy khơng giảm liên tục :1

Bài 24 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100) (Lưu ý dãy không liên tục)

In dãy tăng Ví dụ

Mảng A gồm 1 Thì dãy tăng :

4 6

Bài 25 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100) (Lưu ý dãy không liên tục)

In dãy tăng Ví dụ

Mảng A gồm 1

Thì dãy tăng dài :

Bài 26 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

Mảng A gọi mảng tăng giảm tuần hồn mảng A có giá trị A[1]<A[2]>A[3]<A[4]>A[5]<A[6]…

Hãy kiểm tra mảng vừa nhập có thỏa mãn tính chất khơng Có TRUE, ngược lại FALSE

Bài 27 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

Sắp xếp mảng theo chiều tăng dần giá trị Sắp xếp mảng theo chiều giảm dần giá trị

Bài 28 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

Sắp xếp mảng theo chiều tăng dần phần tử có số chẵn giảm dần phần tử có số lẻ

Bài 29 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100).Tìm kiếm cặp phần tử gần có tổng chia hết cho 10 Thay cặp phần tử tổng chúng

(15)

15

Bài 30 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100).Mảng A mảng đối xứng A[i]=A[n-i+1]

Kiểm tra A có phải mảng đối xứng khơng TRUE có, FALSE khơng

Bài 31 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

Kiểm tra mảng A chuỗi cấp số cộng có cơng sai k = 5? Ví dụ: 11 16 21 26 31

TRUE có, FALSE khơng

Bài 32 Hãy viết chương trình nhập vào mảng số nguyên gồm n phần tử (n>0, n<=100)

Sắp xếp mảng theo chiều tăng dần giá trị

Ngày đăng: 08/02/2021, 06:31

TỪ KHÓA LIÊN QUAN

w