Ví dụ về mảng

16 480 0
Ví dụ về mảng

Đ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

Kiểm Tra bài cũ 1> Hãy cho biết đoạn chương trình sau dùng để đếm số lẽ trong phạm vi N có những lỗi gì? Write(‘Nhap vao N = ‘);Readln(N); dem :=0; i := 1; While i<=N do Begin dem := dem + i; i := i + 2; End; Writeln(‘So le = ‘,dem); 2> Với đoạn chương trình trên khi nhập N = 8 thì dem sẽ được kết quả là bao nhiêu? Program Tinh_So_Le; Uses Crt; Var I, dem, N : Integer; Begin Clrscr; Write(‘Nhap vao N = ‘);Readln(N); dem :=0; i := 1; While i<=N do Begin dem := dem + 1; i := i + 2; End; Writeln(‘So le = ‘,dem); Readln; End. Chương trình mẫu Program Tinh_Nhiet_Do_Ngay; Uses Crt; Const max=100; Type mang = ARRAY[1 max] Of Real; Var nhietdo : mang; dem, i, N : integer; trung_binh, tong : real; Begin Clrscr; Write('Nhap so ngay : '); Readln(N); tong:=0; For i:=1 to N do begin write('Nhap nhiet do ngay ',i,' : '); Readln(nhietdo[i]); tong:=tong+nhietdo[i]; end; trung_binh:=tong/N; dem:=0; For i:=1 To N Do If nhietdo[i]>trung_binh then dem:=dem+1; Writeln('Nhiet do trung binh ',N,' ngay : ',trung_binh:0:1); Writeln('So ngay co nhiet do cao hon nhiet do trung binh : ',dem); Readln; End. Program Tinh_Nhiet_Do_Ngay; Uses Crt; Const max=100; Type mang = ARRAY[1 max] Of Real; Var nhietdo : mang; dem, i, N : integer; trung_binh, tong : real; Begin Clrscr; Write('Nhap so ngay : '); Readln(N); tong:=0; For i:=1 to N do begin write('Nhap nhiet do ngay ',i,' : '); Readln(nhietdo[i]); tong:=tong+nhietdo[i]; end; trung_binh:=tong/N; dem:=0; For i:=1 To N Do If nhietdo[i]>trung_binh then dem:=dem+1; Writeln('Nhiet do trung binh ',N,' ngay : ',trung_binh:0:1); Writeln('So ngay co nhiet do cao hon nhiet do trung binh : ',dem); Readln; End. BÀI TẬP  Hãy viết chương trình nhập vào dãy số A gồm N số nguyên, tính tổng của của dãy số đó và xuất ra màn hình?  dụ 1: Input: N = 3 và dãy {2, 5, 8} Output: tong = 15 Cách khai báo Const Max = 100; Type Dayso = array[1 Max] Of integer; Var a : Dayso; dụ 2:  Bài toán tìm Min(giá trị nhỏ nhất) trong dãy số nguyên gồm N số nguyên. * Xác định bài toán: - Input: Số nguyên N và dãy A={a 1 ,a 2 aN} - Input: Min của day A. * Ý tưởng: Khởi tạo Min = a1. Sau đó cho i chạy từ 2 đến N và so sánh giá trị của ai với Min nếu a i < Min thì Min nhận giá trị mới là a i . Minh họa ý tưởng N = 5, có năm quả bóng có kích thước khác nhau chúng ta cùng tìm Min với chú mèo. Min Quả này nhỏ nhất Quả này nhỏ hơn Tìm ra quả nhỏ nhất rồi Sơ đồ khối và liệt kê các bước B1: Bắt đầu. B2: Nhập N và dãy a1, a2, …, aN. B3:Min ←a1, i ← 2. B4: Nếu i > N thì đưa ra Min rồi KT. B5: B 5.1: Nếu ai < Min thì Min ←ai. B 5.2: i ←i + 1 rồi quay lại B4. Bắt Đầu Nhập N Dãy a1 -> aN i > N Đưa ra Min Kết Thúc ai < Min Min ←a1; i ←2; Min ←ai; i←i + 1; Chương trình minh họa Program Tim_Min; Uses Crt; Const Max = 100; Type mang = ARRAY[1 Max] Of Integer; var a : mang; i, N, min : integer; Begin Clrscr; Write('Nhap vao N = '); Readln(N); For i:=1 To N Do Begin Write('Nhap phan tu a[',i,'] = '); Readln(a[i]); End; i := 2; min := a[1]; while i <= N do begin if (a[i] < min) then begin min:=a[i]; i:=i+1; end else i:=i+1; end; Writeln(‘So nho nhat trong day so A gom ',N,' so nguyen la :',min); readln; End. Program Tim_Min; Uses Crt; Const Max = 100; Type mang = ARRAY[1 Max] Of Integer; var a : mang; i, N, min : integer; Begin Clrscr; Write('Nhap vao N = '); Readln(N); For i:=1 To N Do Begin Write('Nhap phan tu a[',i,'] = '); Readln(a[i]); End; i := 2; min := a[1]; while i <= N do begin if (a[i] < min) then begin min:=a[i]; i:=i+1; end else i:=i+1; end; Writeln(‘So nho nhat trong day so A gom ',N,' so nguyen la :',min); readln; End.  dụ 2 • Thuật toán sắp xếp bằng tráo đỗi vị trí. - Hãy cho biết Input và Output của bài toán? Xác định bài toán: INPUT: Dãy A gồm N số nguyên a 1 , a 2 ,…, a N . OUTPUT: Dãy A được sắp xếp thành dãy không giảm. Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước lớn hơn số sau ta đỗi vị trí chúng cho nhau. Việc đó được lặp lại cho đến khi không có sự đỗi chổ nào xãy ra nữa. C¸ch 1: LiÖt kª c¸c b­íc B1: Nhập N, các số hạng a 1 , a 2 ,…, a N ; B2: M ← N; B3: Nếu M < 2 thì đưa ra dãy A đã sắp xếp rồi kết thúc; B4: M ← M – 1; i ← 0; B5: i ← i +1; B6: Nếu i > M thì quay lại B3; B7: Nếu a i > a i+1 thì tráo đỗi a i và a i+1 cho nhau; B8: Quay lại B5. § § § S S S Nhập N và a 1 , a 2 , ., a N M ← N M < 2 ? M ← M - 1; i ←0 i ← i + 1 i > M ? a i > a i+1 ? Tráo đỗi a i và a i+1 Đưa ra A đã sắp xếp rồi kết thúc Vẽ đồ khối [...]... End; Writeln; End; Hãy nhớ ! 15 20 19 16 25 18 Var 17 12 16 A:ARRAY[1 10,1 10] OF integer; A[1,3] = 19 Mảng hai chiều là bng cỏc phn t cựng kiu mà mỗi ch s kiu phần tử của nó lại là mảng một chiều Khai báo: tên mảng, kiểu chỉ số dòng, kiểu chỉ số cột, kiểu phần tử Tham chiếu phần tử mảng: Tên biến mảng[ cs dòng,cs cột] Thao tác xử lí thường dùng cấu trúc hai câu lệnh FOR DO lồng nhau .  Ví dụ 1: Input: N = 3 và dãy {2, 5, 8} Output: tong = 15 Cách khai báo Const Max = 100; Type Dayso = array[1 Max] Of integer; Var a : Dayso; ví dụ. Định thức D là kiểu mảng một chiều gồm hai phần tử, mỗi phần tử lại là mảng một chiều có hai phần tử. Mỗi phần tử là một số thực. Ta cần mảng hai chiều 3

Ngày đăng: 02/08/2013, 01:27

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan