ChươngưIV:ư Kiểu liệu có cấu trúc Tiết 19 Kiểu mảng 1.ưKiểuưmảngưmộtưchiều.ư 2.ưKiểuưmảngưhaiưchiều.ư 1.ưKiểuưmảngưmộtưchiều *ưGiớiưthiệuưtổngưquátưvềưmảngưmộtưchiều.ư a)ưKhaiưbáo.ư b)ưMộtưsốưvíưdụ.ư *ưCủngưcốưbài:ư ưưưư1.ưKiểuưmảngưmộtưchiều *ưGiớiưthiệuưtổngưquátưvềưmảngưmộtưchiều:ư -ưMảngưmộtưchiềuưlàưdÃyưhữuưhạnưcácưphầnưtửưcùngưkiểu -ưMảngưđượcưđặtưtênưvàưmỗiưphầnưtửưcủaưmảngưcóưmộtưchỉưsố -ưĐểưmôưtảưmảngưmộtưchiềuưcầnưxácưđịnhưkiểuưcủaưcácưphầnư tửưvàưcáchưđánhưsốưcácưphầnưtửưcủaưmảng -ưCácưNNLTư(ưtrongưđóưcóưPascal)ưcóưcácưquyưtắc,ưcáchưthứcư choưphépưxácưđịnh: +ưTênưkiểuưmảngưmộtưchiều +ưSốưlượngưphầnưtử +ưKiểuưdữưliệuưcủaưphầnưtử +ưCáchưkhaiưbáoưbiếnưmảng +ưCáchưthamưchiếuưđếnưphầnưtửưcủaưmảng ư1.ưKiểuưmảngưmộtưchiều *ưGiớiưthiệuưtổngưquátưvềưmảngưmộtưchiều:ư -ưBàiưtoán:ưNhập vào nhiệt độ (trung bình) mối ngày tuần, tính đa hình nhiệt độ trung bình tuần số lợng ngày tuần có nhiệt độ cao nhiệt độ trung bình tuần -ưChươngưtrìnhưviếtưtrongưPascal: ưưư*CTưdùngưcácưbiếnưđơn:ư ưưư*ưChươngưtrìnhưcóưsửưdụngưkiểuưdữưliệuưmảngưmộtưchiềuưđểưmôưtảưdữưliệu.ư CTưgiảiưbàiưtoánưvớiưNưngày: ProgramưNhietdo_tuan; Usesưcrt; Var t1,t2,t3,t4,t5,t6,t7,Tb:real; dem:integer; BEGIN Write(‘Nhapnhietdocho7ngay’); Readln(t1,t2,t3,t4,t5,t6,t7); Tb:=(t1+t2+t3+t4+t5+t6+t7)/7; Dem:=0; If t1>Tbthendem:=dem+1; Ift2>Tbthendem:=dem+1; Ift3>Tbthendem:=dem+1; Ift4>Tbthendem:=dem+1; Ift5>Tbthendem:=dem+1; Ift6>Tbthendem:=dem+1; If t7>Tbthendem:=dem+1; Writeln(‘NhietdoTBcuatuan:’,Tb:6:2); Writeln(‘SongayconhietdocaohonTB:’,dem); Readln; END ProgramNhietdongay; Constmax=366; TypeKmang=array[1 max]ofreal; Var Nhietdo:Kmang; dem,i,N:Byte; Tong;Tbinh:real; BEGIN Write(‘Nhapsongay:’);Radln(N); Tong:=0; Fori:=1toNdo Begin Write(‘Nhietdongaythu’,i,’:’);Readln(Nhietdo[i]); Tong:=Tong+Nhietdo[i]; end; dem:=0; Tbinh:=Tong/N; Fori:=1to Ndo IfNhietdo[i]>Tbinhthendem:=dem+1; Writeln(‘NhietdoTBcua‘,N,’ngµyla:’,Tbinh:8:3); Writeln(‘SongayconhietdocaohonnhietdoTBla:’,dem); Readln; END 1.ưKiểuưmảngưmộtưchiều *ưGiớiưthiệuưtổngưquátưvềưmảngưmộtưchiều:ư TrongưphầnưkhaiưbáoưcủaưchươngưtrìnhưtrênưđÃưkhaiư báoư(địnhưnghĩa)ưkiểuưmảngưmộtưchiềuư(sauưtừư khoáưType),ưsauưđóưkhaiưbáoưbiếnưmảngưmộtưchiềuư làưưNhietdoư(ưsauưtừưkhoáưvar): ưKhai báo (đn) kiểu mảng chiều gồm TypeưKmangư=ưarray[1 max]ưofưreal; max số thực ưưưưưưưưưưưưưưưưưưưưưưưưưVar ưưNhietdo:ưKmang;ư Khai báo biến mảng Nhietdo qua kiểu mảng 1.ưKiểuưmảngưmộtưchiều a)ưKhaiưbáo: *ưCáchư1:ưKhaiưbáoưtrựcưtiếpưbiếnưmảngưmộtưchiều: Cú pháp: ưvarư:ưarrayư[kiểu số]ưofư *ưCáchư2:ưKhaiưbáoưgiánưtiếpưbiếnưmảngưsauưkhiưkhaiưbáoưkiểuưmảngưmộtưchiều: Cú pháp: ưưưTypeưư= arrayư[kiểu số]ưofư; ưưưưưưưưưưưưưưưưưưưvar ư:ư; *ưGiảiưthích: ư-ưkiểu số: Thườngưlàưđoạnưsốưnguyênưliênưtụcưdạngưn1 n2ư;ưn1,ưn2ưlàưhằngưhoặcưbiểuư thứcưnguyênưxácưđịnhưchỉưsốưđầuư(n1)ưvàưchỉưsốưcuốiư(n2);ưn1Nưthìưđưaưraưmaxưrồiưkếtưthúc B4: ưưB4.1:ưưNếuưA i>ưmaxưthìưmaxAi ưưB4.2:ưii+1;ư StopưưXemưCTVD1 2.ưVíưdụư2:ư(ưSắpưxếpưdÃyưsốưnguyênưbằngư thuậtưtoánưtráoưđổi) LậpưtrìnhưnhậpưmộtưdÃyưAưgồmưNư(Nưđượcư nhậpưtừưbànưphímưvàưN 250)ưsốưnguyên,ư dươngưA1,ưA2AAN,ưmỗiưsốưđềuưkhôngưvượtư quáư500.ưĐưaưraưmànưhìnhưdÃyưAưkhôngư giảm (ư*ưNhắcưlạiưthuậtưtoánưlớpư10?) StopưưXemưCTVD2 Ví dụ 3:ư(ưThuậtưtoánưtìmưkiếmưnhịưphân) LậpưtrìnhưnhậpưmộtưdÃyưAưgồmưNư(Nưđượcư nhậpưtừưbànưphímưvàưN 250)ưsốưnguyên,ư dươngưA1,ưA2AAN,vàưsốưnguyênưk.ưĐưaưraư mànưhìnhưchỉưsốưiưmàưA i=kưhoặcưthôngư báoưưKhongưtimưthayưnếuưkhôngưcóưsốư hạngưnàoưcủaưAưbằngưk Ví dụ 3: Thuậtưtoán:ưXemưSGKTinưhọcư10ưhoặcư SGKTinưlớpư11ư(58) StopưưXemưCTVD3 Củngưcốưbài +ưTạiưsaoưthamưchiếuưtớiưmảngưmộtưchiềuưhayưsửư dụngưcấuưtrúcưlặpưForưưdo? + ... *ưCáchư2:ưKhaiưbáoưgiánưtiếpưbiến? ?mảng? ?sauưkhiưkhaiưbáo? ?kiểu? ?mảng? ?mộtưchiều: Cú pháp: ưưưTypeư ư= arrayư [kiểu số]ưofư