Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Контрольная работа по "Программированию"

Автор:   •  Февраль 2, 2022  •  Контрольная работа  •  2,111 Слов (9 Страниц)  •  157 Просмотры

Страница 1 из 9

Вариант № 7

Задание 1

Разработать блок-схему и написать программу вычисления выражения:

[pic 1]             где [pic 2]

        Блок-схема алгоритма программы:

[pic 3]

Текст программы:

MASM

MODEL small

STACK 256

.data

        k db 2

        y dw ?

.code

.startup

; чтобы не вводить дополнительные переменные i и j, воспользуемся правилом,

; что от перестановки мест слагаемых (сомножителей) сумма (произведение)

; не изменяется

        MOV CX, 3                ; счетчик внешнего цикла

        MOV y, 1                ; начальное значение произведения

M2:        MOV SI,CX                ; спасаем значение счетчика внешнего цикла

        MOV AH, 0                ; обнуляем старший байт произведения

        MOV AL, CL                ; начальное значение суммы (AL = i)

        MOV BL, CL

        ADD BL, BL                ; BL = 2*i

        MOV CX, 2                ; счетчик внутреннего цикла

M1:         ADD AL, BL                ; AL = AL + BL = AL + 2*i

        ADD AL, CL                ; AL = AL + CL = AL + j

        LOOP M1                ; завершение внутреннего цикла

        MUL y                        ; умножаем

        MOV y, AX                ; сохраняем результат

        MOV CX, SI                ; восстанавливаем значение счетчика внешнего цикла

        LOOP M2                ; завершение внешнего цикла

        XOR DX, DX                ; DX = 0

        MOV BH, DL                ; BH = 0;

        MOV BL, k

        ADD BL, BL                ; BL = 2*k;

        DIV BX                ; AX = DX:AX/BX

        MOV y, AX                ; сохраняем результат

        CALL PROCOUTNUM        ; выводим результат

.exit

        include io.inc

end

        Результат работы программы:

[pic 4]


Задание 2

Разработать блок-схему и написать программу решения задачи:

Задан вектор А(10). Заменить первый нуль на количество нулей в этом векторе.

        Блок-схема алгоритма программы:

[pic 5] 

Блок-схема алгоритма подпрограммы вывода массива:

[pic 6]

Текст программы:

MASM

MODEL small

STACK 256

.data

        A db 7, 4, 0, 2, 6, 8, 10, 0, 9, 1

        ; сообщения

        ms1 db "Original array:", 13, 10, "$"

        ms2 db 13, 10, "Transformed array:", 13, 10, "$"

.code

.startup

        CLD                        ; DF = 0

        MOV AH, 09                ; вывод сообщения

        LEA DX, ms1                ; ms1

        INT 21h

        LEA SI, A                ; SI - адрес начала массива

        CALL PrnMas                ; вывод исходного массива

        MOV DH, 0                ; DH = 0        

        MOV CX, 10                ; счетчик цикла

M1:        LODSB                        ; AL = [SI], SI = SI+1

        AND AL, AL                ; установка флагов

        JNZ M2                ; переход, если AL не равен 0

...

Скачать:   txt (6.6 Kb)   pdf (201.8 Kb)   docx (767.6 Kb)  
Продолжить читать еще 8 страниц(ы) »
Доступно только на Essays.club