Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебн пособ по арх и прогр МП.doc
Скачиваний:
64
Добавлен:
10.12.2013
Размер:
1.59 Mб
Скачать

Тема 16. Рекомдации начинающему программисту

Если Вы не владеете пока ни одним языком программирования, следует взяв за основу любой вариант контрольной работы, приведенный в ТЕМЕ 17 , разбить задание на ряд промежуточных, постепенно усложняющихся заданий, написать и отладить программы для них. Рекомендуется такая последовательность:

  • Линейная программа для обработки одного элемента

  • Линейная программа для обработки двух-трех элементов массива

  • Линейная программа с разветвлением по условию для обработки одного элемента

  • Циклическая программа по обработки массива размером n - элементов , где n-любое натуральное число

  • Циклическая программа с разветвлением по условию по обработке массива размером n элементов

Например, текст задания такой:

Сложить два массива в сегменте данных, оба - размером 16 байт; сложение выполнить при условии нечетного числа единиц в двоичных кодах элементов первого массива.

Составим следующие постепенно усложняющиеся задания :

  • Сложить два байта, оба в сегменте данных;

  • Сложить два байта, оба в сегменте данных при условии нечетного числа единиц в коде первого байта ;

  • Сложить два массива, каждый размером 2 байта, оба в сегменте данных, используя только линейный алгоритм;

  • Сложить два массива по 8 байт, оба в сегменте данных, используя циклический алгоритм;

  • Сложить два массива по 8 байт, оба в сегменте данных, используя циклический алгоритм; сложение выполнить при условии, что байты первого массива содержат нечетное число единиц.

Тема 17. Контрольная работа

Вариант 1

Переслать строку А1 дополнительного сегмента в строку В1 сегмента данных. Если элемент строки А1>0, пересылать уменьшенное на 2 значение, иначе пересылать без изменений.

Вариант 2

Сложить два массива двоичных чисел в формате байта, один - в сегменте данных, другой - в дополнительном сегменте, при условии что элемент массива в сегменте данных больше элемента массива в дополнительном сегменте. Массив-сумму записать в стек под именем rez.

Вариант 3

Вычесть из массива в дополнительном сегменте массив, хранимый в сегменте данных, при условии неравенства элементов. Массив-разность разместить в сегменте данных.

Вариант 4

Переслать строку Тab1 в строку Тab2, обе - в дополнительном сегменте, с изменением младшего бита элемента Таb1 на противоположное значение.

Вариант 5

Сложить два массива : один - в сегменте данных, другой - в дополнительном сегменте, при условии нечетного значения элементов первого массива.

Вариант 6

Вычесть число 13 из элементов первого массива в сегменте данных при условии отрицательного значения элемента, иначе в новый массив записать элемент первого массива без изменений.

Вариант 7

Переслать массив байт из сегмента данных в дополнительный. Если элемент массива нечетное число, то при пересылке заменить старший бит в этом элементе 1.

Вариант 8

Переслать массив из дополнительного сегмента в другую область того же сегмента со следующими изменениями элементов: добавить 5, если элемент неравен 0.

Вариант 9

Переслать строку Str1 дополнительного сегмента в строку Str2 сегмента данных, причем если элемент строки Str1 четное число, пересылать с уменьшенным на 1 значением.

Вариант 10

Переслать массив из 10 символов из сегмента данных в дополнительный сегмент, при этом из значения элемента вычесть 2, если элемент больше или равен 0, иначе - без изменений.

Вариант 11

Переслать массив из сегмента данных в дополнительный сегмент при условии, что если элемент массива не равен 0, вместо него - пересылается 4, иначе - пересылается без изменений.

Вариант 12

Если элемент строки байт TabS не равен 0FAh, переслать его в строку DIM без изменений, иначе заменить младший бит на 0. Обе строки - в сегменте данных.

Вариант 13

Переслать из сегмента данных строку S1 в дополнительный сегмент в строку S2 с заменой каждого элемента с четным номером на 5.

Вариант 14

Переслать массив из 8 слов из дополнительного сегмента в сегмент данных при условии что слова массива содержат нечетные младшие байты.

Вариант 15

Исходные 2 массива символов находятся в дополнительном сегменте. Новый массив получить как сумму исходных, если элементы исходных равны, если нет - записывать в новый массив константу 0Fh.

Вариант 16

Переслать массив из сегмента данных на место другого массива в том же сегмене при условии, что элементы этих массивов не равны. Если равны, заменить элемент на 0.

Вариант 17

Переслать массив из 6 байт из дополнительного сегмента в сегмент данных при условии, что элементы массива в дополнительном сегменте содержат нечетное число единиц.

Вариант 18

Переслать массив из 12 байт из дополнительного сегмента в сегмент данных при условии неравенства двух соседних байт в исходном массиве.

Вариант 19

Переслать массив байт Tab1 из сегмента дополнительного в строку Tab2 в сегменте данных, причем если элемент Tab1 неравен 1, переслать с поразрядной инверсией.

Вариант 20

Переслать строку SOURS в строку TABL, обе в сегменте данных, причем, если элемент SOURS больше 0, переслать с инверсией всех разрядов.

Вариант 21

В сегменте данных создать третий массив из элементов первого, при условии неравенства элементов первого и второго массивов.

Вариант 22

Сложить с константой 11h байты первого массива в дополнительном сегменте, если элемент массива - число четное. Если - нечетное, в новый массив ничего не записывать.

Вариант 23

Сложить два массива байт, один - в сегменте данных, другой - в дополнительном сегменте, а массив-сумму записать в стек при условии положительного значения элемента первого массива.

Вариант 24

Переслать массив из дополнительного сегмента в стек при условии нечетного числа единиц в элементах массива.