Цель работы: приобрести практические навыки в составлении про-грамм для обработки двумерных массивов.
Задание
1.Изучить оператор описания массивов языка Бейсик, правописание ин-дексированных переменных двумерных массивов и особенности их применения.
2.Для заданного варианта составить схему алгоритма и реализующую его программу для обработки двумерного массива.
3.Произвести на ЭВМ расчеты по разработанной программе для исходных данных, приведенных в табл. 6.1.
4.Получить распечатку программы и результатов расчета.
5.Оформить отчет по лабораторной работе.
Указания по выполнению работы
Алгоритмический язык Бейсик кроме одномерных массивов, рас-смотренных в лабораторной работе № 5, допускает использование двумерных массивов. Положение элемента в двумерном массиве определяется двумя номерами, или индексами массива, обозначающими номер строки и номер столбца, на пересечении которых он расположен. Для обозначения элементов двумерного массива в Бейсике служат переменные с индексами вида A(n,m), где А — имя переменной ( массива ); n,m — записываемые через запятую индексы переменной (массива) — первый индекс обозначает номер строки, второй — номер столбца . Имя переменной двумерного массива и ее индексы образуются так же , как и одномерного массива. Наибольшее допустимое значение ин-дексов двумерного массива (255,255). Например, А(3,4) — переменная дву-мерного массива, стоящая в третьей строке и четвертом столбце (нумерация строк и столбцов начинается с нуля).
Правила описания двумерных массивов такие же, как для одномерных. Например, при описании двух массивов оператор DIM имеет вид
DIM В(4,5), С(5,5)
где верхние границы изменения индексов записываются через запятую. Этот оператор резервирует в памяти ЭВМ места для 30 элементов массива В , со-держащего 5 строк и 6 столбцов, и 36 элементов массива С, состоящего из 6 строк и 6 столбцов.
Если описание двумерного массива отсутствует, то по умолчанию максимальное значение каждого из двух индексов равно 10.
Ввод и вывод двумерных массивов выполняется, как правило, по стро-кам, для чего организуется двойной цикл: внешней — по номеру строки, внут-ренний — по номеру столбца. При этом первый индекс применяется в качестве управляющей переменной внешнего цикла, а второй индекс — в качестве управляющей переменной внутреннего цикла.
Начало | ||
Ввод n,m, | ||
массива | REM Программа транспонирования матрицы | |
A(n,m) | ||
DIMА(20,20),В(20,20) | ||
REMВвод матрицы А | ||
Вывод | PRINT “Введите число строк N=”; | |
массива | INPUT N | |
A(n,m) | ||
PRINT “Введите число столбцов М=”; | ||
INPUTМ | ||
i=1 | FOR1=1 ТО N | |
PRINT “Введите “;I;”-ю строку” | ||
FORJ=1 ТОМ | ||
INPUTA(I,J) | ||
NEXTJ | ||
j=1 | NEXTI | |
REM Контрольный вывод матрицы A | ||
PRINT”Матрица A” | ||
FOR1=1 TO N | ||
bij=aji | FORJ=1 TO M | |
PRINTA(I,J); | ||
NEXTJ | ||
Вывод | NEXT I | |
bij | PRINT“Транспонированная матрица B” | |
FORI=1 TO M | ||
FORJ=1 TO N | ||
j=j+1 | B(I,J)=A(J,I) | |
PRINTB(I,J); | ||
NEXT J | ||
Да | NEXTI | |
END | ||
j | ||
6) | ||
i=i+1 | ||
i | ||
Конец | а) | |
Рис.6.1. Пример программирования алгоритматранспонирования матрицы: | ||
а — схема алгоритма; б — его программная реализация. |
В качестве примера на рис.6.1 приведены алгоритм и программа полу-чения транспонированной матрицы В из матрицы А размером n x m. Транс-понирование матрицы заключается в замене ее строк столбцами, а столбцов — строками.
Программа составлена в общем виде и может использоваться для мат-риц размером 20×20, который задан оператором DIM. Размеры обрабатывае-мой матрицы А вводятся в переменные N и М.
Операторы первого двойного цикла обеспечивают поэлементный ввод матрицы А по строкам. При этом оператор INPUT , являясь телом внутреннего цикла, выполняется (n х m) раз (по числу элементов матрицы) и при каждом его выполнении значение элемента матрицы , вводится с клавиатуры. Опе-ратор PRINT входит в тело внешнего цикла и выводит на дисплей запрос, идентифицирующий номер вводимой строки.
Операторы второго двойного цикла осуществляют контрольный вывод матрицы А после ввода ее элементов, оператор PRINT, являясь телом внут-реннего цикла, выполняется (n х m) раз и выводит построчно элементы мат-рицы А в плотном формате. После вывода строки матрицы и выхода из внут-реннего цикла оператор PRINT без списка вывода осуществляет возврат ка-ретки, чем обеспечивается вывод новой строки матрицы с новой строки эк-рана дисплея.
Вычисление элементов транспонированной матрицы В и их построчный вывод совмещены в целях сокращения программы в третьем двойном цикле Таблица 6.1
Варианта заданий к лабораторной работе № 6
№п. | Составить программу обработкидвумерного | Исходные | |||||
п | массива Аразмером n х m | данные | |||||
n | m | k | |||||
1. | Вычислить сумму всех элементов | — | |||||
2. | Вычислить произведение всех элементов | — | |||||
3. | Вычислить сумму диагональных элементов | — | |||||
4. | Вычислить сумму и произведение элементов k-й | ||||||
строки | |||||||
5. | Вычислить сумму и произведение элементов k-го | ||||||
столбца | |||||||
6. | Сложить k-ю и (k+1)-юстроки и сформировать новый | ||||||
массив размером(n-1) х m | |||||||
7. | Сложить k-й и (k-1)-йстолбцы и сформировать новый | ||||||
массив размеромn х (m-1) | |||||||
8. | Сложить элементы всех строк и сформировать од- | — | |||||
номерный массив размером n | |||||||
9. | Удалить k-ю строку исформировать новый массив | ||||||
размером (n-1) х m |
10. | Удалить k-й столбец исформировать новый массив | |||||||||||
размером n х (m-1) | ||||||||||||
11. | Переставить местами k-ю и(k+1)-ю строки и сфор- | |||||||||||
мировать новый массив | ||||||||||||
12. | Переставить местами k-й и(k-1)-й столбцы и сфор- | |||||||||||
мировать новый массив | ||||||||||||
13. | Определить минимальный элемент, его номерстроки | — | ||||||||||
и столбца | ||||||||||||
14. | Определить максимальный элемент, его номер | — | ||||||||||
строки и столбца | ||||||||||||
15. | Определить минимальный и максимальный эле- | |||||||||||
менты k-й строки | ||||||||||||
16. | Определить минимальный и максимальный эле- | |||||||||||
менты k-го столбца | ||||||||||||
17. | Умножить k-ю строку и (k+1)-йстолбец на число k | |||||||||||
18. | Разделить k-ю строку и (k-1)-йстолбец на число k | |||||||||||
19. | Умножить все элементы массива на число k | 4,86 | ||||||||||
20. | Разделить все элементы массива на число k | 7,35 | ||||||||||
Из двух двумерных массивов A и B размером n х m | Исходные | |||||||||||
№п.п | данные | |||||||||||
сформировать массив С элементыкоторого равны: | ||||||||||||
n | m | |||||||||||
21. | cij | =aij | +bij | ,i=1,…,n, | j =1,…,m | |||||||
22. | cij | =aij | ?bij | ,i=1,…,n, | j =1,…,m | |||||||
23. | cij | =aij | ?bij , i =1,…,n , j =1,…,m | |||||||||
24. | cij | =aij | / bij, i =1, …, n , | j =1,…,m | ||||||||
25. | cij | =aij | ?1/ bij | ,i=1,…,n,j=1,…,m | ||||||||
26. | cij | = 1 ? aij ?bij | ,i=1,…,n,j=1,…,m | |||||||||
27. | cij | =aij | ?2bij , i =1, …, n , j =1, …, m | |||||||||
28. | cij | =bij | ?1/ aij | ,i=1,…,n,j=1,…,m | ||||||||
29. | cij | = aij | +bij | /10 , i =1, …, n , j =1, …, m | ||||||||
30. | Найти матрицу C, равнуюпроизведению матриц A и | |||||||||||
B одного размера n x m |
Библиографический список
1.В.А. Аллилуев, Е.Д.Березкин, А.В. Тютин Основы программиро-вания на языке QBasic. Новочеркасск, 2000 г. С.207.
Статьи к прочтению:
С++ 5. Передача одномерных и двумерных массивов в функцию
Похожие статьи:
-
Программы для обработки одномерных массивов
Цель работы:приобрести практические навыки в составлении про-грамм для обработки одномерных массивов. Задание 1. Изучать оператор описания массивов языка…
-
Разработка программы обработки массива
с применением функций языка С\С++. Цель работы: 1. Овладение практическими навыками работами с составными данными: массивами, строками и функциями языка…