1. Trang chủ
  2. » Giáo án - Bài giảng

Bai16-kieu ban ghi - Tin11

12 226 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 12
Dung lượng 1,15 MB

Nội dung

Bµi 16 Gi¸o ¸n ®iÖn tö tin häc líp 11 19121825162015 Sử dụng biến kiểu mảng để lưu dãy số trên T I n H o c Sử dụng biến kiểu xâu để lưu dãy kí tự trên 01 NguyÔn An 10/01/1990 Nam 9 10 19 SBD Điểm văn Điểm toán Giới tính Ngày sinh Họ và tên học sinh Tổng điểm Bµi to¸n ®Æt vÊn ®Ò: Tổng 4.56.0Phan Vân50 7.55.0Đặng Anh Tuấn 49 6.57.0Trần Thu Trà48 5.08.5Vũ Ngọc Bình02 9.010.0Nguyễn An01 Kết quảVănToánHọ tênSBD Bài toán đặt vấn đề: Bảng kết quả kiểm tra chất l ợng Bản ghi (Record) Tr ờng (Field) Bảng gồm : 50 đối t ợng (record) với 6 thuộc tính (Field) Yêu cầu: Nhập vào thông tin của từng học sinh, tính tổng và xét kết quả, biết rằng nếu tổng >=10 thì kết quả là Đạt 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 Type < tªn kiÓu b¶n ghi> = record <tªn tr êng 1> : kiÓu tr êng 1; < tªn tr êng 2> : kiÓu tr êng 2; < tªn tr êng n> : kiÓu tr êng n; end; Var <tªn biÕn > : <tªn kiÓu b¶n ghi>; <tªn m¶ng > : ARRAY[1 Max] of < tªn kiÓu b¶n ghi>; D÷ liÖu kiÓu b¶n ghi Tổng 4.56.0 Phan Vân 50 7.55.0 Đặng Anh Tuấn 49 6.57.0 Trần Thu Trà 48 5.08.5 Vũ Ngọc Bình 02 9.010.0 Nguyễn An 01 Kết quả VănToánHọ tênSBD Type Hocsinh = record SBD: integer; Hoten: string[30]; Toan,Van,Tong: real; Ketqua: string[10]; end; Var LOP: ARRAY[1 50] of Hocsinh; I,j,n : integer; Khai báo kiểu dữ liệu cho các tr ờng (field) Khai báo biến kiểu bản ghi (record) Tham chiếu <Tên biến kiểu bản ghi>.<tên tr ờng> Ví dụ: Lop[2].hoten Lop[2].toan 3. Gán giá trị Dùng lệnh gán trực tiếp: Nếu A và B là 2 biến bản ghi cùng kiểu, thì ta có thể gán giá trị của B cho A bằng câu lệnh gán A:=B; Tr ờng hợp sau có thực hiện đ ợc hay không? A:=C; A: biến có kiểu bản ghi Hocsinh C: biến có kiểu bản ghi Nhanvien Các giá trị của các tr ờng của biến A có bằng với các giá trị t ơng ứng của biến B hay không? a. Nhập thông tin học sinh Write( Nhap vao so hoc sinh trong lop : ); readln(n); Các b ớc: Thể hiện bằng pascal - Nhập số học sinh For i:=1 to n do Begin writeln( Nhap du lieu cho hoc sinh thu ,i); Write( SBD : ); readln(LOP[i].SBD); Write(HO TEN : ); readln(LOP[i].Hoten); Write( Diem toan : );readln(LOP[i].Toan); Write( Diem van : );readln(LOP[i].Van); end; - Nhập dữ liệu (các thuộc tính) của từng bản ghi 3. Gán giá trị Gán giá trị cho từng tr ờng: Có thể dùng lệnh gán hoặc nhập từ bàn phím 9.010.0Nguyễn An01 VănToánHọ và tênSBD Khi i = 1 LOP[1].SBD Quá trình nhập kết thúc khi nhập hết dữ liệu cho bản ghi thứ n. * Nhập giá trị tr ờng cho SBD của học sinh thứ nhất nằm ở bản ghi đầu tiên. * T ơng tự nh vậy nhập giá trị các tr ờng còn lại. b. Các thao tác xử lí trong bản ghi Tính tổng điểm văn và toán của từng học sinh trong lớp. Dùng lệnh gì để tính tổng cho từng bản ghi nhỉ ? For i:=1 to n do LOP[i].Tong:= LOP[i].Toan + LOP[i].Van; Đ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 . For i:=1 to n do IF LOP[i].Tong>=10 then LOP[i].Ketqua=Dat else LOP[i].Ketqua=Khong dat; c. In d÷ liÖu kiÓu b¶n ghi C¸c b íc: ThÓ hiÖn b»ng pascal Th«ng b¸o in Writeln(‘ Bang ket qua kiem tra chat luong ‘); For i:=1 to n do In b¶ng d÷ liÖu 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); [...]...Program vd1; Uses crt; Type { Khai bao} Hocsinh = record SBD: integer; { tinh tong cho tung ban ghi } Hoten: string[30]; For i:=1 to n do Toan,Van,Tong:real; LOP[i].Tong := LOP[i].Toan + LOP[i].Van; Hãy viết chơng Ketqua: string[10]; trình hoàn chỉnh { dien ket qua cho tung ban ghi } end; Var LOP: ARRAY[1 100] để Hocsinh; toán i:=1 to n do of giải bài For đặt vấn đề ? if LOP[i].Tong>=10... LOP[i].Tong>=10 then i,n: integer; BEGIN LOP[i].Ketqua:=Dat Clrscr; { nhap so hoc sinh } else LOP[i].Ketqua:=Khong dat; Write( Nhap vao so hoc sinh trong lop : ); readln(n); { In bang du lieu } { nhap du lieu tung ban ghi} Writeln( Bang ket qua kiem tra ); For i:=1 to n do For i:=1 to n do Begin Writeln(LOP[I].sbd:5,LOP[i].Hoten:30, writeln( Nhap so lieu hoc sinh thu ,i); LOP[i].toan:5:1,LOP[i].Van:5:1,... integer; Hovaten : string[30]; Toan,Van,Tong:real; Ketqua :string[10]; end; Var LOP: ARRAY[1 50] of hocsinh; LOP[i].SBD Khai báo: tên biến bản ghi, tên và kiểu dữ liệu các trờng Tham chiếu trờng của bản ghi: Tên biến bản ghi. tên trờng Gán giá trị cho từng trờng của bản ghi hoặc giữa hai biến cùng kiểu . );readln(LOP[i].Van); end; { tinh tong cho tung ban ghi } For i:=1 to n do LOP[i].Tong := LOP[i].Toan + LOP[i].Van; { dien ket qua cho tung ban ghi } For i:=1 to n do if LOP[i].Tong>=10. cho từng tr ờng của bản ghi hoặc giữa hai biến cùng kiểu. Khai báo: tên biến bản ghi, tên và kiểu dữ liệu các tr ờng. Tham chiếu tr ờng của bản ghi: Tên biến bản ghi. tên tr ờng Type Hocsinh. kiểu bản ghi (record) Tham chiếu <Tên biến kiểu bản ghi& gt;.<tên tr ờng> Ví dụ: Lop[2].hoten Lop[2].toan 3. Gán giá trị Dùng lệnh gán trực tiếp: Nếu A và B là 2 biến bản ghi cùng

Ngày đăng: 19/07/2014, 06:00

w