Реферат Курсовая Конспект
Q(1)=0.25: Q(2)=0.12: Q(3)=0.35: Q(4)=0.28 - раздел Образование, Загрузка системы QuickBASIC Или С Помощью Оператора Ввода: Dim Q(1 To 4) ...
|
или с помощью оператора ввода:
DIM Q(1 TO 4)
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;
- с каждым витком внешнего цикла размер неупорядоченного массива уменьшается на единицу;
- после завершения внешнего цикла выводим на экран упорядоченный массив.
– Конец работы –
Эта тема принадлежит разделу:
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ Бюджетное ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ... ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ... МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Q(1)=0.25: Q(2)=0.12: Q(3)=0.35: Q(4)=0.28
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов