Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Лабораторная работа №4. Варианты пример отчета к содержанию



Варианты пример отчета к содержанию

Цель: Освоить механизмы обработки двумерных массивов на языке ассемблер и принципы ввода символьной и числовой информации с клавиатуры

Тема: Обработка двумерных массивов

Этапы выполнения работы:

1. Разработка алгоритма решения задачи

2. Написание программы на языке ассемблер, реализующей алгоритм.

3. Компиляция, линкование и отладка программы с помощью отладчика td.exe.

4. Анализ принципов ввода с клавиатуры информации

Один из вариантов организации ввода с клавиатуры – использование 10-ой функции 21-ого прерывания, которая вводит строку. Перед вызовом этой функции в регистр dx необходимо положить адрес так называемого «блока ввода». Он представляет собой поле памяти с определенной последовательностью байт:

- первый байт: максимальная длина строки;

- второй байт: реальная длина строки (будет заполнено после завершения работы функции);

- начиная со следующего байта располагается сама вводимая строка.

Т.о. в сегменте данных имеем:

blockinput label byte

maxlen db 7

actlen db?

string db 7 dup (?)

Тогда вызов этой функции будет иметь вид:

mov ah,0ah

lea dx,blockinput

int 21h

После завершения работы функции в переменной actlen будет содержаться длина набранной нами строки, а в переменной string –сама строка. В примере максимальная длина строки выбрана 7 байт, т.к. в строку будет записываться число типа word (-32768÷32767) Максимальное количество позиций, требуемых для такого числа – 6. Но в строку заносится также и знак «Enter» (♪).

Однако по условию задачи вводить нам нужно числовые данные (количество элементов и сами элементы матрицы). Поэтому введенную строку необходимо преобразовать в число, а также выполнить проверку корректности введенных символов. Преобразование можно выполнить путем умножения каждой цифры на вес разряда и суммированием полученных значений, например:

2345=5+4*10+3*100+2*1000.

Другой вариант преобразования – использование схемы Горнера. В этом случае число получается следующим образом:

2345=((2*10+3)*10+4)*10+5.

При этом после выполнения каждого арифметического действия должна производиться проверка на переполнение и в случае его обнаружения выдаваться сообщение об ошибке и приглашение повторить ввод заново.

При выполнении лабораторной работы возможно использование процедуры inputnumber, приведенной в примере отчета. Однако, недостатком предложенного в ней алгоритма является некорректная отработка минимально допустимого числа -32768. По алгоритму преобразование выполняется только с положительными числами, а затем, если перед числом стоит знак «минус» число инвертируется. Однако при получении числа 32768 фиксируется переполнение и выводится соответствующая ошибка. Студентам предлагается для получения «отличной» оценки по данной лабораторной работе самостоятельно преобразовать алгоритм для устранения этого недостатка!

5. Добавление в программу команд и процедур для вывода на экран информации и ввода с клавиатуры исходных данных

6. Отладка программы.

7. Оформление отчета

Отчет должен содержать следующие разделы:

1.Титульный лист

2. Задание

3. Блок-схема

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

5.Результаты работы программы (скриншоты экрана)

6.Выводы

8. Защита работы.

В результате выполнения работы должны быть усвоены следующие темы:

- хранение элементов матрицы в памяти

- алгоритм обработки матрицы

- способы обращения к элементам матрицы

- алгоритм ввода с клавиатуры и проверки на корректность данных

- алгоритм преобразования строки в число.

- знать входные и выходные параметры тех функций прерываний, которые использованы в лабораторной работе.


Варианты заданий лабораторной работы №4

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

-----------------------------------------------------------------

2. В каждой строке прямоугольной матрицы обменять максимальный и минимальный элементы строки. Определить значение и место­положение максимального элемента матрицы до и после ее преобразо­вания.

-----------------------------------------------------------------

3. Для каждого столбца прямоугольной целочисленной матрицы подсчитать сумму входящих в него элементов и определить, имеются ли соседние столбцы с одинаковой суммой. Подсчитать количество пар таких столбцов.

-----------------------------------------------------------------

4. Каждый элемент строки прямоугольной матрицы представить как приращение по отношению к минимальному элементу этой же строки. Определить значение и положение максимального элемента матрицы после ее преобразования.

----------------------------------------------------------------

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

-----------------------------------------------------------------

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

-----------------------------------------------------------------

7. Для каждой строки прямоугольной целочисленной матрицы оп­ределить сумму ее положительных элементов. После чего строку с минимальной суммой таких элементов обнулить.

-----------------------------------------------------------------

8. В каждом столбце прямоугольной матрицы найти минимальный элемент и определить номер столбца, имеющего максимальное по мо­дулю значение такого элемента.

-----------------------------------------------------------------

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

-----------------------------------------------------------------

10. Для каждого столбца прямоугольной матрицы, элементами кото­рой являются целые положительные числа, определить сумму входящих в него элементов и, если она нечетная, добавить единицу к значе­нию последнего элемента данного столбца.

-----------------------------------------------------------------

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

-----------------------------------------------------------------

12. В прямоугольной матрице найти номера столбцов, содержащих соответственно максимальное и минимальное количество отрицательных элементов, после чего обменять их местами. Учесть частные случаи (в матрице нет отрицательных элементов; лишь один столбец

матрицы содержит такие элементы; лишь два столбца содержат отри­цательные элементы, но их количество одинаково).

-----------------------------------------------------------------

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

-----------------------------------------------------------------

14. Для прямоугольной матрицы найти минимальный из положитель­ных элементов и максимальный из отрицательных элементов, после

чего обменять их местами. Нулевые элементы не учитывать.

-----------------------------------------------------------------

15. В каждой строке прямоугольной матрицы, элементами которой являются целые положительные числа, определить сумму нечетных элементов и найти строку с минимальной их суммой.

-----------------------------------------------------------------

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

-----------------------------------------------------------------

17. В каждой строке прямоугольной матрицы найти максимальный по модулю элемент и заменить его средним арифметическим значением остальных элементов данной строки.

-----------------------------------------------------------------

18. В каждой строке прямоугольной матрицы найти максимальный элемент и, если первый элемент строки положительный, максимальному элементу строки присвоить ну­левое значение.

-----------------------------------------------------------------

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

-----------------------------------------------------------------

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

-----------------------------------------------------------------

21. В прямоугольной матрице определить номера строк, сумма мо­дулей элементов которых наибольшая и наименьшая по сравнению с другими строками, после чего обменять эти строки местами.

-----------------------------------------------------------------

22. Для каждого столбца прямоугольной матрицы определить раз­ность d между суммой элементов, стоящих на четных местах, и суммой элементов, стоящих на нечетных местах. При этом учесть, что количество строк в матрице может быть как четное, так и нечетное. Найти столбцы с максимальным значением d.

-----------------------------------------------------------------

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

-----------------------------------------------------------------

24. В прямоугольной матрице определить количество столбцов, содержащих только числа одного знака (положительные или отрицатель­ные) и не содержащих нулевых элементов.

-----------------------------------------------------------------

25. В прямоугольной матрице подсчитать количество строк, содержащих нулевые элементы.

-----------------------------------------------------------------

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

-----------------------------------------------------------------

27. В каждой строке прямоугольной матрицы найти максимальный по модулю элемент. Затем найти минимальное значение из этих максимумов.

-----------------------------------------------------------------

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

-----------------------------------------------------------------

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

-----------------------------------------------------------------

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

-----------------------------------------------------------------

31. В каждой строке прямоугольной матрицы поставить элементы в обратном порядке.

-----------------------------------------------------------------

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

-----------------------------------------------------------------

33. Если сумма четных элементов строки прямоугольной матрицы больше суммы нечетных элементов этой же строки, то обменять первый и последний элементы строки.

-----------------------------------------------------------------

34. Найти максимальное значение элемента, находящегося на главной диагонали квадратной матрицы. После чего обнулить строку и столбец, в котором находится такой элемент.

-----------------------------------------------------------------

35. В каждом столбце прямоугольной матрицы заменить элементы, меньшие среднего арифметического этого столбца, нулевыми значениями.

-----------------------------------------------------------------

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

-----------------------------------------------------------------

37. В прямоугольной матрице обменять столбцы с максимальной и минимальной сумой элементов.

-----------------------------------------------------------------

38. Если в прямоугольной матрице максимальный элемент строки больше модуля минимального элемента этой же строки, поменять эти элементы местами.

-----------------------------------------------------------------

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

---------------------------------------------------------------

40. В квадратной матрице в каждой строке элемент, находящийся на главной диагонали, заменить полусуммой максимального и минимального элементов строки.

----------------------------------------------------------------





Дата публикования: 2015-04-10; Прочитано: 852 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.013 с)...