Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Варианты пример отчета к содержанию
Цель: Освоить механизмы обработки двумерных массивов на языке ассемблер и принципы ввода символьной и числовой информации с клавиатуры
Тема: Обработка двумерных массивов
Этапы выполнения работы:
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!