Ưùng dúng đeơ tính trung bình

Một phần của tài liệu bai giang hop ngu.pdf (Trang 103 - 105)

DIV BX OVERFLOW

find the positio nk of the largest element among A[1] A[i] Swap A[i] and A[k] ( uses procedure SWAP )

7.6 Ưùng dúng đeơ tính trung bình

Giạ sử mt lớp goăm 5 sinh vieđn và cĩ 4 mođn thi . Kêt qụa cho bởi mạng 2 chieău như sau :

Teđn Sinh vieđn

TEST1 TEST2 TEST3 TEST4

MARY 67 45 98 33

SCOTT 70 56 87 44

GEORGE 82 72 89 40

BETH 80 67 95 50

SAM 78 76 92 60

Chúng ta sẽ viêt1 chương trình tính đieơm trung bình cho mi bài thi . Đeơ làm đieău này cĩ theơ toơng theo ct roăi chia cho 5 .

Thut tốn : 1. j = 4 2. repeat

3. Sum the scores in column j

4. divide sum by 5 to get average in column j 5. j = j - 1

Chương 7 : Mạng và các chê đ địa chư 95 Trong đĩ bước 3 cĩ theơ làm như sau :

Sum[j]= 0 i = 1

FOR 5 times DO

Sum[j]= Sum[j]+ Score[i, j] i = i + 1 END_FOR

Chương trình cĩ theơ viêt như sau :

TITLE PGM7_4 : CLASS AVERAGE .MODEL SMALL .STACK 100H .DATA FIVE DB 5 SCORES DW 67,45,98,33 ; MARY DW 70,56,87,44 ;SCOTT DW 82,72,89,40 ;GEORGE DW 80,67,,95,50 ; BETH DW 78,76,92,60 ;SAM AVG DW 5 DUP (0) .CODE MAIN PROC MOV AX,@DATA MOV DS,AX ;J=4 REPEAT:

MOV SI,6 ; SI chư đên ct thứ 4

XOR BX,BX ; BX chư hàng thứ nhât XOR AX,AX ; AX chứa toơng theo ct ; Toơng đieơm tređn ct j

FOR:

ADD AX , SCORES[BX+SI]

ADD BX,8 ; BX chư đên hàng thứ 2 LOOP FOR

; end_for

; tính trung bình coơt j

XOR DX,DX ; xố phaăn cao cụa sơ bị chia (DX:AX) DIV FIVE ; AX = AX/5

MOV AVG[SI],AX ; cât kêt qụa tređn mạng AVG SUB SI,2 ; đên ct tiêp

; un til j=0

Chương 7 : Mạng và các chê đ địa chư 96 ;DOS EXIT MOV AH,4CH INT 21H MAIN ENDP END MAIN

Sau khi bieđn dịch chương tènh cĩ theơ dùng DEBUG đeơ cháy và xem kêt qụa baỉng leơnh DUMP.

Một phần của tài liệu bai giang hop ngu.pdf (Trang 103 - 105)

Tải bản đầy đủ (PDF)

(108 trang)