<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
Bài 16
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
<b>...</b>
<b>...</b>
<b>...</b>
<b>...</b>
<b>Tổng</b>
<b>4.5</b>
<b>6.0</b>
<b>Phan Vân</b>
<b>50</b>
<b>7.5</b>
<b>5.0</b>
<b>Đặng Anh Tuấn </b>
<b>49</b>
<b>6.5</b>
<b>7.0</b>
<b>Trần Thu Trà</b>
<b>48</b>
<b>5.0</b>
<b>8.5</b>
<b>Vũ Ngọc Bình</b>
<b>02</b>
<b>9.0</b>
<b>10.0</b>
<b>Nguyễn An</b>
<b>01</b>
<b>Kết quả</b>
<b>Văn</b>
<b>Toán</b>
<b>Họ tên</b>
<b>SBD</b>
Bi toỏn t vn :
Bảng kết quả kiểm tra chất l ợng
<b><sub>Bản ghi</sub></b>
<b>(Record) </b>
<b>Tr ờng</b>
<b>(Field)</b>
<b>Bng gm : 50 i t ợng (record) với 6 thuộc tính (Field)</b>
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
1. Dữ liệu kiểu bản ghi
dùng để mô tả các đối t ợng có cùng một số thuộc tính
mà các thuộc tính có thể có kiểu dữ liệu khỏc nhau.
2. Khai báo kiểu bản ghi
<b>Type</b>
<b>< tên kiểu bản ghi> = </b>
<b>record</b>
<b><tên tr ờng 1> : kiểu tr êng 1;</b>
<b>< tªn tr êng 2> : kiĨu tr êng 2;</b>
<b> </b>
<b>end;</b>
<b>Var</b>
<b><tªn biÕn > : <tên kiểu bản ghi>;</b>
<b><tên mảng > : ARRAY[1..Max] of < tên kiểu bản ghi>; </b>
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
<b>...</b>
<b>...</b>
<b>...</b>
<b>...</b>
<b>Tổng</b>
<b>4.5</b>
<b>6.0</b>
<b>Phan Vân</b>
<b>50</b>
<b>7.5</b>
<b>5.0</b>
<b>Đặng Anh Tuấn </b>
<b>49</b>
<b>6.5</b>
<b>7.0</b>
<b>Trần Thu Trà</b>
<b>48</b>
<b>5.0</b>
<b>8.5</b>
<b>Vũ Ngọc Bình</b>
<b>02</b>
<b>9.0</b>
<b>10.0</b>
<b>Nguyễn An</b>
<b>01</b>
<b>Kết quả</b>
<b>Văn</b>
<b>Toán</b>
<b>Họ tªn</b>
<b>SBD</b>
<b>Type </b>
Hocsinh =
record
SBD: integer;
Hoten: string[30];
Toan,Van,Tong: real;
Ketqua: string[10];
end;
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
3. Các thao tác với bản ghi
<b>a. Nhập th«ng tin häc sinh</b>
Write(‘ Nhap vao so hoc sinh trong lop : ‘);
readln(n);
C¸c b íc:
<sub>ThĨ hiƯn b»ng pascal</sub>
<b>- NhËp sè häc sinh </b>
For i:=1 to n do
Begin
writeln(‘ Nhap du lieu cho hoc sinh thu ‘,i);
Write(‘ SBD : ‘); readln(
<b>LOP[i].SBD</b>
);
Write(‘HO TEN : ‘); readln(
<b>LOP[i].Hoten</b>
);
Write(‘ Diem toan : ‘);readln(
<b>LOP[i].Toan</b>
);
Write(‘ Diem van : ‘);readln(
<b>LOP[i].Van</b>
);
end;
<i><b>- NhËp d÷ liƯu (c¸c </b></i>
<i><b>thc tÝnh) cđa </b></i>
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
<b>9.0</b>
<b>10.0</b>
<b>Ngun An</b>
<b>01</b>
<b>Văn</b>
<b>Toán</b>
<b>Họ và tên</b>
<b>SBD</b>
<b>Khi </b>
<b>i = 1 </b>
<b> </b>
<b>LOP[1].SBD </b>
<b> </b>
<b> Quá trình nhập kết thúc khi nhập hết dữ liệu cho bản ghi </b>
<b>thứ n.</b>
<b> </b>
<b>* NhËp gi¸ trÞ tr êng</b>
<b>cho SBD cđa häc sinh thø nhÊt nằm </b>
<b>ở bản ghi đầu tiên.</b>
<b> </b>
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
<b>b. C¸c thao t¸c xư lí trong bản ghi</b>
Tính tổng điểm văn và toán của tõng häc sinh trong líp.
<b>Dùng lệnh gì để </b>
<b>tính tổng cho </b>
<b>từng bản ghi nhỉ ?</b>
<b>For i:=1 to n do </b>
<b>LOP[i]</b>
<b>.Tong:= </b>
<b>LOP[i]</b>
<b>.Toan + </b>
<b>LOP[i].</b>
<b>Van; </b>
Điền chữ Đạt vào cột kết quả cho những học sinh có tổng >=10, ng
ợc lại điền chữ Khong dat .
<b>For i:=1 to n do </b>
<b> IF </b>
<b>LOP[i]</b>
<b>.Tong>=10 then </b>
<b>LOP[i]</b>
<b>.Ketqua=‘Dat’</b>
</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
<b>c. In d÷ liệu kiểu bản ghi</b>
Các b ớc:
Thể hiện bằng pascal
<b>Thông b¸o in</b>
<b><sub>Writeln(‘ Bang ket qua kiem tra chat luong );</sub></b>
For i:=1 to n do
<b>In bảng dữ liệu</b>
<b>Writeln(</b>
LOP[I].sbd
:5
,LOP[i].Hoten
:30
,
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
<b>H·y viÕt ch ơng </b>
<b>trình hoàn chỉnh </b>
<b> gii bi toỏn </b>
<b>t vn đề ?</b>
Program vd1;
Uses crt;
<b>Type </b> <b> { Khai bao}</b>
Hocsinh = record
SBD: integer;
Hoten: string[30];
Toan,Van,Tong:real;
Ketqua: string[10];
end;
<b>Var</b> LOP: ARRAY[1..100] of Hocsinh;
i,n: integer;
<b>BEGIN</b>
Clrscr; <b>{ nhap so hoc sinh }</b>
Write(‘ Nhap vao so hoc sinh trong lop : ‘);
readln(n);
<b>{ nhap du lieu tung ban ghi}</b>
For i:=1 to n do
Begin
writeln(‘ Nhap so lieu hoc sinh thu ‘,i);
Write(‘ SBD : ‘); readln(<b>LOP[i].SBD</b>);
Write(‘HO VA TEN : ‘); readln(<b>LOP[i].Hoten</b>);
Write(‘ Diem toan : ‘);readln(<b>LOP[i].Toan</b>);
Write(‘ Diem van : ‘);readln(<b>LOP[i].Van</b>);
end;
<b>{ tinh tong cho tung ban ghi }</b>
For i:=1 to n do
LOP[i].Tong := LOP[i].Toan + LOP[i].Van;
<b> { dien ket qua cho tung ban ghi }</b>
For i:=1 to n do
if LOP[i].Tong>=10 then
LOP[i].Ketqua:=‘Dat’
else LOP[i].Ketqua:=‘Khong dat’;
<b>{ In bang du lieu }</b>
Writeln(‘ Bang ket qua kiem tra ‘);
For i:=1 to n do
Writeln(LOP[I].sbd:5,LOP[i].Hoten:30,
LOP[i].toan:5:1,LOP[i].Van:5:1,
LOP[i].tong:8:1,LOP[i].Ketqua:15);
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
H·y nhớ!
<b> Gán giá trị cho từng tr ờng của </b>
<b> Khai báo: tên biến bản ghi, tên </b>
<b>và kiểu dữ liệu các tr ờng.</b>
<b> Tham chiếu tr ờng cđa b¶n ghi: </b>
<b> Tên biến bản ghi</b>
<b>.</b>
<b>tên tr ờng</b>
<b>Type</b>
Hocsinh = record
SBD : integer;
Hovaten : string[30];
Toan,Van,Tong:real;
Ketqua :string[10];
end;
<b>Var</b>
LOP: ARRAY[1..50] of hocsinh;
</div>
<!--links-->