Автор работы: Пользователь скрыл имя, 06 Октября 2013 в 20:39, практическая работа
Вычислить выражение: (a*a+b*b+c*c+d*d)/(a+b+c+d).
Составить программу для вычисления заданного арифметического выражения: y:=(4(a-2b)+2)/(b+2a-1)
Даны три отрезка a, b и с и их величины. Необходимо выяснить можно ли построить из этих отрезков треугольник. Если да, то res = 1, иначе res = 0.
Условие задания
Листинг программы №1
.model tiny
stack 100h
.data
a db 1
b db 1
c db 1
d db 2
.code
main:
mov al,a
mul a
mov bl,al
mov al,b
mul b
add bl,al
mov al,c
mul c
add bl,al
mov al,d
mul d
add bl,al
mov al, a
mov cl, b
add al, cl
mov cl, c
add al, cl
mov cl, d
add al, cl
mov cl, al
mov al, bl
div cl
end main
end
Результат работы программы №1
Рисунок 1 – Окно запуска программы
Рисунок 2 – Результат программы
Листинг программы №2
.model tiny
.stack 100h
.data
a db 3
b db 1
l1 db 1
l2 db 2
.code
main:
mov al,b
mul l2
mov bl, a
sub bl, al
mov al, l2
mul l2
mul bl
mov bl, l2
add al, bl
mov cl, al
mov al, a
mul l2
mov bl, b
add al, bl
mov bl, l1
sub al, bl
mov bl, al
mov al, cl
div bl
end main
end
Результат работы программы №2
Рисунок 3 – Окно запуска программы
Рисунок 4 –Результат программы
Листинг программы №3
.model tiny
.stack 100h
.data
a db 6
b db 3
c db 8
no db "Nel'zya postroit' $"
yes db "Mojno postroit' $"
.code
main:
mov al, a
mov bl, b
mov cl, c
cmp al, bl
jg m1
jmp m2
m1: ; a > b,c
cmp al, cl
jl m3
add bl, cl
cmp al, bl
jg net
jmp da
m2: ; b > a,c
cmp bl, cl
jl m3
add al, cl
cmp bl, al
jg net
jmp da
m3: ; c > a,b
add al, bl
cmp cl, al
jg net
jmp da
da:
mov dx, offset yes
mov ah, 9
int 21h
jmp m0
net:
mov dx, offset no
mov ah, 9
int 21h
jmp m0
m0:
mov dl, 0
end main
Результат работы программы №3
Рисунок 5 – Результат программы
Выводы по результатам проделанной работы
Результатом проделанной работы является получение теоретических и практических знаний о приемах разработки линейных программ с использованием арифметических выражений для IBM PC/XT.