Автор работы: Пользователь скрыл имя, 05 Апреля 2010 в 13:51, Не определен
Задание: Вычислить функцию заданную в виде:
Y(x)=a, если 1<x<=5
Y(x)=b, если 5<x<=10
Где a и b – элементы массивов A(I), B(I), стоящие в третьей позиции после сортировки в порядке возрастания. Сортировку массива в порядке возрастания оформить в виде подпрограммы.
I= 1, 2, 3, .., 10
Алгоритм программы (блок-схема)
Лабораторная работа 2
Применение подпрограмм в вычислительных процессах
Задание: Вычислить функцию заданную в виде:
Y(x)=a, если 1<x<=5
Y(x)=b, если 5<x<=10
Где a и b – элементы массивов A(I), B(I), стоящие в третьей позиции после сортировки в порядке возрастания. Сортировку массива в порядке возрастания оформить в виде подпрограммы.
I= 1, 2, 3, .., 10
Алгоритм программы (блок-схема)
Листинг программы:
.model small
.stack 100h
.data
Welc db ‘Enter X:$’
Mess db ‘x>10 ili <0 $’
Res db 1,2,3,4,5,6,7,8,9,0
P db (?)
X db 2
Y_x db (?)
Massiv db 1,6,4,4,5,6,7,8,9,0
Prob db ‘$’
.code
Newline proc near
Push dx
Push ax
Mov ah, 2
Mov dl, 13
Int 21h
Pop ax
Pop dx
Ret
Newline endp
; процедура сортировки массива
Sort_mas proc near
Mov cx, 10
Lp_sort:
Mov si, 0
Lp_srt_ins:
Mov dh, [bx+si+1]
Cmp [bx+si], dh
Ja above
Lp_srt_ins_con:
Cmp si, 9
Inc si
Jb lp_srt_ins
Loop lp_sort
Jmp end_proc
Above:
Mov dh, [bx+si]
Mov p, dh
Mov dh, [bx+si+1]
Mov [bx+si], dh
Mov dh, p
Mov [bx+si+1], dh
Jmp lp_srt_ins_con
End_proc:
Ret
Sort_mas endp
Outbyte proc near
Push ax
Push cx
Push dx
Aam
Mov cl, al
Mov al, ah
Aam
Mov ch, al
Mov dl, ah
Mov ah, 02h
Add dl, 30h
Add cx, 3030h
Cmp dl, 30h
Jnz short@ob1
Cmp ch, 30h
Jnz short@ob2
Jmp short@ob3
@ob1: int 21h
@ob2: mov dl, ch
Int 21h
@ob3: mov dl, cl
Int 21h
Pop dx
Pop cx
Pop ax
Ret
Outbyte endp
Print_mas proc near
Print:
Mov cx, 10
Mov si, 0
Cycle_print:
Mov al, [bx+si]
Call outbyte
Mov ah, 9
Mov dx, offset prob
Int 21h
Inc si
Loop cycle_print
Call newline
Ret
Print_mas endp
Main:
Mov ax, @data
Mov ds, ax
Mov ah, 9
Mov dx, offset welc
Int 21h
Mov ah, 01h
Int 21h
Sub al, 30h
Mov x, al
Call newline
Mov bx, offset massiv
Call sort_mas
Call print_mas
Mov bx, offset res
Call sort_mas
Call print_mas
Mov dh, x
Cmp dh, 5
Jbe a1
Cmp dh, 10
Jbe b1
Mov ah, 9
Movdx, offset mess
Int 21h
Jmp exit
A1:
Mov al, massiv[2]
Mov y_x, al
Call outbyte
Jmp exit
b1:
Mov al, res[2]
Mov y_x, al
Call outbyte
Jmp exit
Exit:
Mov ax,4c00h
Int 21h
End main
Выполнила студентка гр. ИУТ-91 Маякова Алина Сергеевна
Информация о работе Применение подпрограмм в вычислительных процессах