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

Задание № 2. Исходный массив X(n) упорядочить по возрастанию



Исходный массив 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

PRINT

NEXT I

PRINT

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

PRINT

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; Прочитано: 287 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



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