Лекция: INPUT Q(1), Q(2), Q(3), Q(4)

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

PRINT Q(1); Q(2); Q(3); Q(4) – этот оператор выводит значения элементов в строку.

PRINT Q(1), Q(2), Q(3), Q(4) – этот оператор выводит значения элементов массива в строку в зонном формате (на каждое значение отводится по 14 колонок).

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

Ниже приведены фрагменты программ, представляющие возможные варианты ввода и вывода значений элементов одномерных массивов:

REM Ввод массива с помощью ' оператора «INPUT»* DIM n, I AS INTEGER INPUT n DIM Q(n) FOR I=1 TO n INPUTQ(I) NEXT I REM Ввод массивас помощью 'оператора " INPUT " из файла OPEN «d:\dan.dat» FOR INPUT AS #1 DIM n, I AS INTEGER INPUT n DIM Q(n) FOR I=1 TO n INPUT#1, Q(I) NEXT I
REM Ввод массива с помощью 'оператора «READ»** DIM I AS INTEGER DATA 5,7,12,2,0,7,23,6,4,8,1 DIM Q(1 TO11) FOR I=1 TO 11 READQ(I) NEXT I REM Ввод массива с помощью ' датчика случайных чисел*** RANDOMIZE TIMER DIM n, I AS INTEGER INPUT n DIM Q(n) FOR I=1 TO n Q(I)= FIX(RND*60) ' любая формула NEXT I
REM Вывод массива на экран в строку FOR I=1 TO N PRINT Q(I); NEXT I REM Вывод массива на экран в столбик FOR I=1 TO N PRINT Q(I) NEXT I REM вывод массива в файл OPEN «d:\rez.dat» FOR OUTPUT AS #2 FOR I=1 TO N PRINT #2,Q(I); NEXT I

ПРИМЕР 12.1 Дан массив целых чисел. Найти значение максимального элемента. Если таких элементов несколько, то определить их количество.

REM Нахождение максимального элемента массива

DIN N, I, K YMAX AS INTEGER

INPUT «Введите размер массива N= », N

DIM X(1 TO N) AS INTEGER

REM Формируем массив с помощью датчика случайных чисел

RANDOMIZE TIMER

FOR I = 1 TO N

X(I) = RND*50 + 20

PRINT X(I); 'выводим массив на экран в строку

NEXT I

PRINT 'переходим на новую строку после вывода массива

REM Введем переменную YMAX для хранения в ней максимального значения

YMAX = X(1) 'Начальное значение переменной YMAX

K = 1 'Начальное значение счетчика равных максимальных элементов

FOR I = 2 TO N

IF X(I) > YMAX THEN 'Если YMAX окажется меньше очередного элемента

YMAX = X(I) 'то его значение заменяем

K = 1 'устанавливаем начальное значение счетчика максимальных элементов

ELSEIF X(I) = YMAX THEN 'Если очередной элемент окажется равным YMAX

K = K + 1 'увеличиваем значение счетчика равных максимальных элементов

END IF

NEXT I

PRINT 'Пропускаем строку

REM Выводим значение максимального элемента массива и их количество

PRINT «YMAX=»; YMAX, «КОЛИЧЕСТВО=»; K

END

Пояснения к программе:

— описываем целочисленные переменные: N — размер массива, I — переменная (счетчик) цикла, K — счетчик элементов, равных максимальному, YMAX – переменная для хранения максимального элемента массива;

— вводим размер массива N и описываем целочисленный массив X из N элементов;

— в цикле формируем массив с помощью датчика случайных чисел и выводим его на экран в одну строку;

— устанавливаем начальное значение переменной YMAX – значение первого элемента массива X и начальное значение счетчика K;

— последовательно просматриваем элементы массива и если очередной элемент больше, чем YMAX, то меняем значение YMAX и устанавливаем начальное значение счетчика K, если очередной элемент массива равен YMAX, то значение счетчика K увеличивается на 1.

— после завершения цикла выводим результаты.

ПРИМЕР 12.2 Дан массив чисел. Найти, сколько в нем пар одинаковых соседних элементов.

REM Нахождение пар одинаковых элементов массива

DIN N, I, K AS INTEGER

INPUT «Введите размер массива N= », N

DIM MAS(1 TO N)

REM Формируем массив с помощью датчика случайных чисел

RANDOMIZE TIMER

FOR I = 1 TO N

MAS(I) = RND*50 + 20

PRINT MAS(I); 'выводим массив на экран в строку

NEXT I

PRINT 'переходим на новую строку после вывода массива

K = 0 'Начальное значение счетчика пар равных элементов массива

FOR I = 1 TO N-1

IF MAS(I) = MAS(I+1) THEN K=K+1

NEXT I

PRINT 'пропускаем строку

REM Выводим количество пар равных соседних элементов массива

PRINT «K= »; K

END

Пояснения к программе:

— начало программы аналогично предыдущему примеру;

— устанавливаем начальное значение счетчика K равное 0;

— последовательно сравниваем пары элементов массива и если они совпадают, то значение счетчика K увеличивается на 1. Следует обратить внимание на то что переменная цикла I изменяется от 1до (N-1), поскольку в цикле сравниваются элементы массива с индексами I и (I+1) – изменение переменной цикла до N приведет к выходу за границу диапазона;

— после завершения цикла выводим результаты.

ПРИМЕР 12.3 Дан массив чисел. Упорядочить его по убыванию.

Для решения задачи можно использовать алгоритм сортировки с помощью прямого выбора:

— выбираем наибольший элемент в массиве;

— меняем его местами с первым элементом;

— повторяем процесс с оставшимися (N-1) элементами, (N-2) элементами и т.д. до тех пор, пока не останется последний, самый маленький элемент.

REM Сортировка массива

DIN N, I, J AS INTEGER

INPUT «Введите размер массива N= », N

DIM A(1 TO N)

REM Формируем массив с помощью датчика случайных чисел

RANDOMIZE TIMER

FOR I = 1 TO N

A(I) = RND*50 + 20

PRINT A(I); 'выводим массив на экран в строку

NEXT I

PRINT 'переходим на новую строку после вывода массива

FOR I = 1 TO N-1

MAX = A(I) 'устанавливаем начальное значение текущего максимума

NM = I 'устанавливаем начальное значение номера максимального элемента

FOR J = I + 1 TO N

IF MAX <= A(J) THEN

MAX = A(J)

NM = J

END IF

NEXT J

SWAP A(I), A(NM) 'меняем местами элементы массива

NEXT I

REM Вывод упорядоченного массива на экран

FOR I = 1 TO N

PRINT A(I); 'выводим упорядоченный массив на экран в строку

NEXT I

END

Пояснения к программе:

— вводим размер массива, формируем массив и выводим его на экран;

— организуем два вложенных цикла: внешний цикл регулирует размер неупорядоченного массива, во внутреннем цикле осуществляется поиск максимального элемента неупорядоченного массива и его индекса;

— меняем местами первый элемент неупорядоченного массива и найденный максимальный элемент – оператор SWAP;

— с каждым витком внешнего цикла размер неупорядоченного массива уменьшается на единицу;

— после завершения внешнего цикла выводим на экран упорядоченный массив.

еще рефераты
Еще работы по информатике