Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Исходный массив X(n) упорядочить по возрастанию.
Лабораторная работа № 13
Работа с двумерными массивами
Цель работы:
1. Изучение приемов программирования с использованием двумерных массивов.
2. Закрепление навыков работы в отладочных режимах среды QBasic.
В QBasic двумерные массивы (матрицы) описываются так же, как и одномерные. Различие состоит в том, что при описании массива указываются размеры для двух его индексов. Например, оператор
DIM A(1 TO 20, 1 TO 10) AS INTEGER – описывает целочисленную матрицу А, состоящую из 20 строк и 10 столбцов. Положение каждого элемента массива A(I, J) определяется значением строки I, и столбца J - индекс строки стоит на первом месте, индекс столбца - на втором.
Для ввода-вывода двумерных массивов (матриц), организуется сложный (вложенный - глубиной два) цикл:
REM Формирование матрицы с помощью датчика случайных чисел
REM и вывод матрицы на экран
DIM N, M, I, J AS INTEGER
INPUT N, M
DIM A(1 TO N, 1 TO M)
FOR I = 1 TO N 'изменение номера строки
FOR J = 1 TO M 'изменение номера столбца
A(I,J) = RND * 50 + 20
PRINT A(I,J); 'вывод очередного элемента матрицы на экран
NEXT J
PRINT 'переход на новую строку после окончания вывода очередной строки
NEXT I
ПРИМЕР 13.1. Сформировать одномерный массив из максимальных элементов столбцов матрицы А(22,5). В свою очередь матрицу А получить с помощью датчика случайных чисел.
CLS
DIM I, J AS INTEGER
DIM A(1 TO 22, 1 TO 5), B(1 TO 5) 'описываем массивы A и B
RANDOMIZE TIMER
FOR I = 1 TO 22
FOR J = 1 TO 5
A(I, J) = RND*100 'формируем матрицу А
PRINT USING "####.#####"; A(I, J); 'форматированный вывод по строкам
NEXT J
NEXT I
REM Перебираем матрицу A по столбцам:
FOR J = 1 TO 5
REM В переменной АMAX храним значение максимального элемента столбца
AMAX = A(1, J) 'начальное значение АMAX - значение первого элемента столбца
FOR I = 2 TO 22
IF AMAX <= A(I, J) THEN AMAX=A(I, J)
NEXT I
B(J) = AMAX 'заполнение очередного элемента массива В
NEXT J
REM Вывод массива В на экран
FOR J = 1 TO 5
PRINT USING "####.#####"; B(J); 'форматированный вывод массива в строку
NEXT J
END
Пояснения к программе:
- описываем используемые в программе целочисленные переменные и массивы A и B, состоящие из вещественных чисел;
- с помощью датчика случайных чисел формируем матрицу А и выводим ее на экран, используя форматированный вывод - PRINT USING;
- организуем два вложенных цикла: внешний цикл организует просмотр матрицы А по столбцам и заполнение массива В, во внутреннем цикле осуществляется поиск минимального элемента в столбце;
- после завершения внешнего цикла выводим на экран полученный массив В.
ПРИМЕР 13.2. Дана матрица целых чисел размером nхm. Найти в строках самые левые минимальные элементы и определить их местоположение (номер строки и номер столбца).
CLS
DIM N, M, I, J, MIN, NJ AS INTEGER
INPUT N
INPUT M
DIM A(1 TO N, 1 TO M) AS INTEGER 'описываем матрицу A
RANDOMIZE TIMER
FOR I = 1 TO N
FOR J = 1 TO M
A(I, J) = RND*100 + 15 'формируем матрицу А
PRINT A(I, J); 'вывод матрицы А по строкам
NEXT J
NEXT I
PRINT "САМЫЕ ЛЕВЫЕ МИНИМАЛЬНЫЕ ЭЛЕМЕНТЫ В СТРОКАХ"
FOR I = 1 TO N
REM Установка начального значения MIN и его номера NJ в строке
MIN = A(I, 1): NJ = 1
FOR J = 2 TO M
IF MIN >= A(I, J) THEN MIN=A(I, J): NJ = J
NEXT J
PRINT "MIN="; MIN, "I="; I, "J="; J
NEXT I
END
Пояснения к программе:
- описываем используемые в программе целочисленные переменные
- вводим количество строк N и столбцов M целочисленной матрицы А, описываем ее, затем заполняем с помощью датчика случайных чисел и выводим на экран;
- организуем два вложенных цикла: внешний цикл организует просмотр матрицы А по строкам и вывод результатов на экран, во внутреннем цикле осуществляется поиск минимального элемента в строке.
Дата публикования: 2015-03-29; Прочитано: 288 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!