Сделай Сам Свою Работу на 5

Протокол работы программы





Оглавление

1 Цель работы.. 3

2 Порядок работы.. 3

3 Программирование на ToyCode. 3

3.1 Постановка задачи. 3

3.2 Алгоритм. 3

3.3 Таблица внешних спецификаций. 4

3.4 Таблица памяти. 4

3.5 Таблица тестов. 4

3.6 Листинг программы в ToyCode. 5

3.7 Протокол работы программы.. 6

3.8 Заключение. 10

4 Разветвления. Простые циклы. 11

4.1 Постановка задачи. 11

4.2 Алгоритм программы.. 11

4.3 Таблица внешних спецификаций. 11

4.4 Таблица памяти. 11

4.5 Таблица тестов. 12

5 Блок-схема. 12

6 Листинг программы.. 12

7 Протокол работы программы.. 14

8 Заключение. 17

 


 

Цель работы

1. Программирование на ToyCode.

2. Закрепление знаний по отладке программы.

3. Использование знаний из курса «Программирование на ЯВУ».

Порядок работы

1. Ознакомиться с теоретическими материалами по теме. 2. Разобрать лекционные примеры. 3. Ознакомиться с заданием согласно варианту. 4. Составить таблицу внешних спецификаций 5. Выполнить проектирование тестов к задачам. 6. Разработать и описать алгоритмы решения в виде блок-схемы или псевдокода. 4. Закодировать алгоритмы на языке ассемблера с необходимыми комментариями. 5. Получить исполняемый файл (.tcp) 7. Отладить и протестировать программу.

Программирование на ToyCode.



Постановка задачи

 

Выполнить вычисления Y по формуле y=5a–b/(7+v). Значения аргументов вводятся с клавиатуры.

Алгоритм

1. Ввод a

2. Ввод b

3. Ввод v

4. Загрузка 7 в аккумулятор

5. Сложение v со значением в аккумуляторе

6. Сохранение суммы в рабочей ячейке

7. Загрузка в аккумулятор b

8. Деление на значение, сохраненное в рабочей ячейке

9. Сохранение в рабочей ячейке

10. Загрузка в аккумулятор 5

11. Умножение значения аккумулятора на a

12. Вычитание рабочей ячейки из произведения

13. Сохранение в рабочей ячейке Y

14. Вывод Y

15. Стоп

 

Таблица внешних спецификаций

Имя Назначение Тип ОДЗ
a Переменная целый -9999..9999
b Переменная целый -9999..9999
v Переменная целый -9999..9999
x Переменная целый -9999..9999
y Искомая переменная целый -9999..9999

 

Таблица памяти

Переменные
Имя переменной Номер ячейки памяти
a
b
v
y
R (рабочая ячейка)
Постоянные

 



Таблица тестов

Тест 1 Тест 2 Тест 3 Тест 4 Тест 5 Тест 6 Тест 7 Тест 8
a -100
b -9000
v -7 -6 -6
y ошибка! ошибка! -1
К выпол /0 перепол выпол дробь выпол выпол выпол

 

Листинг программы в ToyCode

REM Сложение значения в аккумуляторе с vADD vREM Запись в рабочую ячейкуSTO rREM Загрузка в аккумулятор bLD bDIV rREM Запись в рабочую ячейкуSTO rREM Загрузка в аккумулятор bLD zREM Умножение на aMPY aREM Вычитание разности из произведенияSUB rREM Запись в уSTO yREM Вывод уOUT yREM Конец алгоритмаSTOPREM Начальные данныеa: DC 3b: DC 80v: DC 13z: DC 5x: DC 7y: DC 11r: DC 0

 

Протокол работы программы

Заносим наш код в поле исходного кода в трансляторе языка TOYCODE, и нажимаем кнопку «Трансляция».

Рисунок 1 –Трансляция TOYCODE.

 

Далле сохраняем обьектный код, и получаем фаил с расширением .tcp

Рисунок 2 – Сохранение объектного кода.


 

Рисунок 3 – Результат запуска транслированного TOYCODE.

 

Файл с кодом запускаем на TOYCOMP и проверяем результат выполнения программы. Исходя из таблицы тестов при заданных переменных ответ должен быть равен 11:

 

Тест 1

a b v y
11 Выполнена команда СТОП

 


 

Рисунок 4 – Первый прогон программы.

Из рисунка 4 видно, что на устройство вывода пришло 11, что говорит о правильности транслированного TOYCODа.

 



Проведем прогон следуя данным из таблицы тестов, чтобы проверить реакцию программы на ошибочные операции, такие как деление на ноль:

Тест 2

a b v y
-7 Ошибка! Деление на 0

 

Рисунок 5 – Второй прогон программы.

Из рисунка 5 видно сообщение об ошибки, что говорит о правильности выполнения программы, так как делить на ноль нельзя.


 

Так как память нашего игрушечного компьютера сильно ограничена, легко можно переполнить память, что должно привести к ошибке и остановке программы. Проведем последний прогон следуя данным из таблицы тестов:

Тест 3

a b v y
Ошибка! Переполнение

Рисунок 6 –Третий прогон программы.

 

Заключение

Программа отлажена, тестирование показало, что программа правильно решает поставленную задачу.


Разветвления. Простые циклы.

Постановка задачи

Выполнить вычисления Y по формуле Y=(x-3)6. Значения аргументов вводятся с клавиатуры.

Алгоритм программы

№ команд КОП Комментарий
IN x   Ввод переменной Х
LD x   Загрузка Х в аккумулятор
SUB a Вычисляем разность Вычитание а из Х
STO R   Сохранение результата в R
THEN: LD Y Начало тела цикла Загрузка Y в аккумулятор
MPY R Возведение в степень Умножение на разность (R)
STO Y   Сохранение результата в Y
LD C   Загрузка C в аккумулятор
SUB 1 Уменьшаем счетчик на 1 Вычитание 1 из C
STO C   Сохранение результата в C
BGTR THEN Переход в начало цикла Переход, если больше нуля
OUT Y Вывод, если равно 0 Вывод решения ур-Я (Y)
STOP Конец программы Стоп
     

 

Таблица внешних спецификаций

Имя Назначение Тип ОДЗ
x Переменная целый -1..7
y Переменная целый -9999..9999

 

Таблица памяти

Переменные
Имя переменной Номер ячейки памяти
x
Y
R(рабочая ячейка)
C
a
Постоянные
THEN

Таблица тестов

№ теста X Решение Y Комментарий
Выполнено
-2 -/- Ошибка: Переполнение!
-/- Ошибка: Переполнение!
-1 Четная степень – результат всегда должен быть положительный
Ноль в любой степени ноль
-/- -/- Введено пустое значение!
-/- Введено слишком длинное значение!

5 Блок-схема

Листинг программы

REM Разветвления. Простые циклы

REM Ввод x

IN x

REM Загрузка x в АКК

LD x

REM Отнять а от х

SUB a

REM Сохранение в R

STO R

THEN: LD P

REM Начало тела цикла

REM Загрузка произведения в АКК

LD P

MPY R

STO P

REM Счетчик циклов

LD C

SUB 1

STO C

REM Если >0, то переход в начало цикла

BGTR THEN

REM Если =0, то вывод ответа

OUT P

STOP

REM Начальные значения

x: DC 4

P: DC 1

R: DC 0

C: DC 6

1: DC 1

a: DC 3

Протокол работы программы

Заносим наш код в поле исходного кода в трансляторе языка TOYCODE, и нажимаем кнопку «Трансляция».

Рисунок 7 – Трансляция TOYCODE.

После успешной трансляции сохраняем файл с кодом и запускаем его на TOYCOMP для проверки результатов выполнения программы.

Рисунок 8 – Результат запуска транслированного TOYCODE.

Первый прогон программы проведем для проверки работоспособности. Введем х=2, соответственно первому тесту таблицы тестов:

Рисунок 9 – Результат первого прохода 1.

В результате работы программы получена 1, как и предполагал тест.


 

Проведем проверку программы на переполнение и на работу с отрицательными значениями, так как память нашего игрушечного компьютера сильно ограничена. Введем х=-2, у будет равен 15625, что выходит за пределы памяти (-9999..9999):

Рисунок 10 – Результат второго прохода -/-.

Результат, как и ожидалось, превысил ограничения памяти, что привело к ошибке и остановке программы.


 

Проведем последнюю проверку программы на переполнение, но на этот раз с положительным числом. Введем х=8, у будет равен 15625, что выходит за пределы памяти (-9999..9999):

Рисунок 11 – Результат третьего прохода -/-.

Результат, как и ожидалось, превысил ограничения памяти, что привело к ошибке и остановке программы.

Заключение

Программа отлажена, тестирование показало, что программа правильно решает поставленную задачу.

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.