Go Back   Diễn đàn trường THPT Trần Phú - Đà Nẵng > Góc học tập - Học tập online - học trực tuyến > Các môn học THPT > Môn Tin học > Tin học lớp 11


Hướng dẫn chung về kỳ thi Đại học, Cao đẳng 2012

Hãy tìm kiếm trước khi bạn đặt câu hỏi trên diễn đàn nhé !
Hữu ích:         Phần mềm dạy và học | Kinh nghiệm học tập | Bài giảng trực tuyến
  Văn mẫu:               Văn mẫu lớp 10 | Văn mẫu lớp 11 | Văn mẫu lớp 12

Hãy sử dụng trình duyệt FireFox hoặc Google Chrome để lướt web nhanh và an toàn hơn .
> Download FireFox < - > Download Google Chrome <




Tags - Từ khóa tìm thêm:
bai 11 kieu mang, bai tap tin hoc 11 kieu mang, bai tap tin hoc kieu mang, bai tap tin hoc kieu mang lop 11, bai tap tin hoc kieu mang vi du, baitappascal voi bien mang, bài 11 kiểu mảng, cach khai bao bien mang, kiểu mảng, kiểu mảng trong pascal, kieu mang, kieu mang trong pascal, pascal lop 11 kieu mang, tin học 11 kiểu mảng, tin hoc 11 kieu mang, viet chuong trinh pascal kieu mang
Gởi Ðề Tài Mới  Trả lời
 
Ðiều Chỉnh Xếp Bài
  #1  
Old 28-11-2010, 10:32 PM
KuteoDnC's Avatar
  User Profile
KuteoDnCAdmin KuteoDnC is offline
Administrator
   Họ & Tên: Ku tèo
  • Đang học lớp : * Đã ra trường .
  • Niên khóa : 2002 - 2005
 
Tham gia: Oct 2009
Nơi Cư Ngụ: 127.0.0.1
Point: 2,312,345
Đã cảm ơn: 159 bài viết
Được cảm ơn 645 lần trong 184 bài
KuteoDnC is a splendid one to beholdKuteoDnC is a splendid one to beholdKuteoDnC is a splendid one to beholdKuteoDnC is a splendid one to beholdKuteoDnC is a splendid one to beholdKuteoDnC is a splendid one to beholdKuteoDnC is a splendid one to behold

Trùm tham nhũng Trùm tham nhũng Trùm tham nhũng Trùm tham nhũng 
Total Awards: 8

Send a message via ICQ to KuteoDnC
Default Bài 11: KIỂU MẢNG

Bài 11: KIỂU MẢNG


Trong lập trình thường có 2 loại mảng :
- Mảng một chiều .
- Mảng hai chiều .

1. Kiểu mảng một chiều
- Mảng một chiều là một dãy hữu hạn các phần tử có cùng kiểu, mảng được đặt tên và mỗi phần tử mang một chỉ số. Để mô tả mảng một chiều ta cần xác định kiểu của các phần tử và cách đánh chỉ số các phần tử .
Với mảng một chiều ta quan tâm đến :
- Tên mảng một chiều .
- Số lượng phần tử trong mảng .
- Kiểu dữ liệu của phần tử .
- Cách khai báo biến mảng một chiều .
- Cách truy cập vào từng phần tử của mảng .
Xét ví dụ : Nhập vào nhiệt độ trung bình mỗi ngày trong tuần . Tính và đưa ra màn hình nhiệt độ trung bình của cả tuần và đếm số ngày có nhiệt độ lớn hơn nhiệt độ trung bình này
Quan sát hai chương trình viết bằng ngôn ngữ Pascal cùng để giải bài toán trên .
- Chương trình 1 : Không sử dụng kiểu mảng .
- Chương trình 2 : Sử dụng kiểu mảng một chiều .

a> Khai báo mảng một chiều
Trong ngôn ngữ Pascal, mảng một chiều được khai báo bằng hai cách như sau :
Cách 1 :
Var <Tên mảng> : Array[kiểu chỉ số] of <kiểu phần tử> ;
Cách 2 :
Type <Tên kiểu mảng> = Array [<kiểu chỉ số>] of <kiểu phần tử> ;
Var <Tên mảng> : <tên kiểu mảng> ;

Trong đó :
- Type là từ khóa dùng để khai báo biến, Array là từ khóa để khai báo mảng .
- Kiểu chỉ số thường là đoạn số nguyên liên tục có n1..n2, với n1 là chỉ số đầu và n2 là chỉ số cuối.
- Kiểu thành phần là kiểu dữ liệu của phần tử mảng .
- Để truy cập vào phần tử mảng ta viết :
- <Tên biến mảng>[Chỉ số]
Ví dụ :
A[20] Truy cập phần tử mang chỉ số 20 trong mảng A .

Ví dụ :
Khai báo biến mảng thông qua kiểu mảng :
Type
ArrayInteger=Array[1..100] of Integer;
ArrayReal=Array[1.50] of Real;
Var A : Array[1..50];
B : Array[1..50] of Real;

Khai báo mảng trực tiếp :
Var A : Array[1..100] of Integer ;
B : Arrat[1..50] of Real ;

b>Một số ví dụ :
Ví dụ 1 : Tìm phần tử lớn nhất của một dãy số nguyên .
- Input : Số nguyên dương N và dãy số A1, A2, ….., AN
- Output : Chỉ số và giá trị của số lớn nhất trong dãy
- Ý tưởng :
+ Đặt số A1 là số lớn nhất (max)
+ Cho i lặp từ 2 đến N, nếu A[i]> thì đổi max = A[i] vả lưu lại vị trí i .

Chương trình như sau :

Code:
Program timmax ; Uses crt ; var a : array[1..250] of integer ; n,i,max,csmax : Integer ; Begin clrscr ; Write('Nhap n = ') ; Readln(n) ; For i := 1 to n do Begin Write('a[',i,'] = ') ; readln(a[i]) ; End ; max := a[i] ; csmax := 1 ; For i := 2 to n do If a[i] > max then Begin max := a[i] ; csmax :=i ; End ; Writeln('Gia tri lon nhat : ',max) ; Writeln('chi so ptu lon nhat : ',csmax) ; Readln ; End .
Ví dụ 2 : Sắp xếp dãy số nguyên theo bằng thuật toán tráo đổi .
- Input : Số nguyên dương N và dãy số A1, A2, …, AN
- Output : Dãy A được sắp xếp theo thứ tự không giảm .

- Ý tưởng :
+ Đổi để đưa số lớn nhất về vị trí cuối cùng .
+ Làm tương tự đối với những số còn lại .

Chương trình như sau :
Code:
Program sapxep ; Uses crt ; var A : Array[1..250] of integer ; n,i,j,tg : Integer ; Begin clrscr ; Write('Nhap so phan tu mang n = ') ; Readln(n) ; For i := 1 to n do Begin Write('A[',i,'] = ') ; readln(A[i]) ; End ; For j := n downto 2 do Begin For i := 1 to j-1 do If A[i] > A[i+1] then Begin tg := A[i] ; A[i] := A[i+1] ; A[i+1] := tg ; End ; End ; Writeln('day sau khi sap xep : ') ; For i := 1 to n do write(a[i]:8) ; readln ; End . Writeln('chi so ptu lon nhat : ',csmax); readln ; End .

Ví dụ 3 : Tìm kiếm nhị phân .
- Input : Dãy số A1, A2,………, AN đã được sắp xếp tăng dần .
- Output : Có hay không chỉ số i mà A[i] = k hoặc thông báo không tìm thấy .
- Ý tưởng :
Xem lại thuật toán tìm kiếm nhị phân trong SGK lớp 10 .

Chương trình như sau :


Code:
Program sapxep ; Uses crt ; var A : Array[1..250] of integer ; n,i,k : Integer ; dau,cuoi,giua : Integer ; TK : boolean ; Begin clrscr ; Write('Nhap so ptu mang n = ') ; Readln(n) ; For i := 1 to n do Begin Write('A[',i,'] = ') ; readln(A[i]) ; End ; Write('nhap so can tim k : ') ; Readln(k); dau := 1 ; cuoi := n ; TK := false ; while (dau <= cuoi) and Not TK Do Begin giua := (dau+cuoi) div 2 ; If A[giua] = k then TK := true Else If a[giua]>k then cuoi := giua - 1 Else dau := giua + 1 ; End ; If TK then write('Chi so la : ',giua) else write(' Khong tim thay '); readln ; End .
2. Kiểu mảng 2 chiều :
- Mảng hai chiều là một bảng các phần tử cùng kiểu .
Với mảng hai chiều ta quan tâm đến :
- Tên kiểu mảng hai chiều .
- Số lượng phần tử của mỗi chiều trong mảng .
- Kiểu dữ liệu của phần tử .
- Cách khai báo biến mảng hai chiều .
- Cách truy cập vào từng phần tử của mảng .

a> Khai báo mảng hai chiều
- Trong ngôn ngữ Pascal, mảnh hai chiều được khai báo như sau :
Cách 1 : Khai báo trực tiếp
Var : <Tên mảng> : Array[kiểu chỉ số dòng, kiểu chỉ số cột] of < kiểu phần tử> ;
Cách 2 : Khai báo gián tiếp thông qua khai báo kiểu mảng
Type <Tên kiểu mảng> = Array[kiểu chỉ số dòng, kiểu chỉ số cột] of <kiểu phần tử> ;
Var <Tên mảng> : <Tên kiểu mảng> ;

Ví dụ :
Khai báo biến mảng thông qua kiểu mảng :
Type
ArrayInteger = Array[1..10,1..15] of Integer ;
ArrayReal=Array[1..50,1..100] of Real ;

Var A : ArrayInteger ;
B : ArrayReal ;

Khai báo mảng trực tiếp :
Var A : Array[1..10,1..15] og Integer ;
B : Aarray[1..50,1..100] og Real ;

Cách truy cập vào phần tử của mảng hai chiều :
<Tên mảng>[chỉ số dòng, chỉ số cột]
Ví dụ : A[1,3], B[23,66],……

b> Một số ví dụ :
Ví dụ 1 :
Chương trình sau đưa ra màn hình bảng cửu chương .

Code:
Program cuuchuong; Uses crt ; var A : Array[1..9,1..9] of Integer ; i, j : Byte ; Begin Clrscr ; Writeln('Bang cuu chuong 1 -> 9 : '); Writeln ; For i := 1 to 9 do For j := 1 to 9 do A[i,j] := i*j ; For i := 1 to 9 do Begin For j := 1 to 9 do Write(a[i,j]:4); Writeln ; Writeln ; End ; Readln ; End .
Ví dụ 2 :
Chương trình sau nhập vào một mảng 2 chiều và số nguyên k, sau đó in ra các phần tử có giá trị nhỏ hơn k của mảng .





***Hãy cùng chia sẻ với bạn bè bằng cách ***
Copy nội dung dưới đây gửi đến nick yahoo bạn bè!
Tài sản của KuteoDnC
Trả Lời Với Trích Dẫn
Gởi Ðề Tài Mới  Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt


Xin thông báo, bây giờ là 07:38 PM

Tổng lượng truy cập diễn đàn Tranphudn.Com
Powered by vBulletin
Copyright ©2000-2013, Jelsoft Enterprises Ltd
Website hiển thị tốt nhất ở trình duyệt Chrome hoặc FireFox và chế độ toàn màn hình
Khi tham gia diễn đàn tức là bạn đã đồng ý với Nội quy diễn đàn
BQT Không chịu trách nhiệm về nội dung bài viết mà các thành viên đăng tải lên diễn đàn
Địa chỉ trường: 11 Lê Thánh Tôn - TP.Đà Nẵng
Điện thoại: 0511.3822851

tran phu | de thi dh 2011 | de thi dai hoc 2011 | de thi dai hoc 2011 | Thu vien giao an dien tu| giao an dien tu| Giao an lop 10| Giao an lop 11| Giao an lop 12| Kinh nghiem hoc tap| van mau lop 9| Van mau lop 10| Van mau lop 11| Van mau lop 12| THPT Trần Phú Đà Nẵng | Thế hệ trẻ Yêu Hóa Học | doc truyen conan | meo choi lmht| soan bai | do go doc | top keywords, bua | |