Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Input q(1), q(2), q(3), q(4)




DIM Q(1 TO 4)

DIM Q(1 TO 4)

Q(1)=0.25: Q(2)=0.12: Q(3)=0.35: Q(4)=0.28

или с помощью оператора ввода:

Вывод массива осуществляется с помощью оператора 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;

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

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

Лабораторное задание

1. Набрать, отладить и выполнить программы обработки одномерных массивов Вашего индивидуального задания.

2. Составить блок-схему.

3. Проанализировать работу операторов, пользуясь отладочными режимами.

4. Составить отчет. Защитить работу.

Лабораторная работа состоит из двух задач. Студент выбирает из списка заданий свой индивидуальный вариант и выполняет его. В заданиях исходный массив элементов получить с помощью датчика случайных чисел. Значения буквенных переменных задавать с клавиатуры.

Вариант №1

Задание № 1.

Определить сумму и количество положительных элементов исходного массива X(n).

Задание № 2.

Задан массив натуральных чисел, элементы которого могут принимать значения от 1 до 1000. Найти и вывести на экран сумму элементов самой длинной последовательности подряд идущих четных элементов массива, если такой последовательности не существует, вывести соответствующее сообщение.

Вариант №2

Задание № 1.

Определить среднее арифметическое положительных элементов исходного массива X(n).

Задание № 2.

Задан массив натуральных чисел, элементы которого могут принимать значения от 1 до 1000. Найти и вывести на экран сумму элементов самой длинной последовательности подряд идущих элементов массива, которые без остатка делятся на 3. Если такой последовательности не существует, вывести соответствующее сообщение.

Вариант №3

Задание № 1.

Определить индексы наибольшего и наименьшего элементов исходного массива X(n).

Задание № 2.

Задан массив натуральных чисел, элементы которого могут принимать значения от 1 до 1000. Найти и вывести на экран значение среднего арифметического элементов самой длинной последовательности подряд идущих нечетных элементов массива. Если такой последовательности не существует, вывести соответствующее сообщение.

Вариант №4

Задание № 1.

Переписать элементы исходного массива X(n) в массив Y(n) в обратном порядке.

Задание № 2.

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

Вариант №5

Задание № 1.

Определить сумму элементов исходного массива X(n) с нечетными номерами.

Задание № 2.

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

Вариант №6

Задание № 1.

Сформировать массив Y(n) из исходного массива X(n), расположив сначала положительные, а потом отрицательные элементы.

Задание № 2.

В исходном массиве найти и вывести второй максимум массива (элемент который в отсортированном по не возрастанию массиве стоял бы вторым).

Вариант №7

Задание № 1.

Сформировать массив Y(n) из исходного массива X(n) с циклическим сдвигом их на d элементов.

Задание № 2.

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

Вариант №8

Задание № 1.

Определить сумму отрицательных и количество положительных элементов исходного массива X(n).

Задание № 2.

В исходном массиве найти сумму наибольшей возрастающей последовательности подряд идущих элементов. Если таких последовательностей несколько, можно выбрать любую из них.

Вариант №9

Задание № 1.

Определить значение и индекс элемента исходного массива X(n), наиболее близкого к среднему арифметическому всех элементов массива.

Задание № 2.

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

Вариант №10

Задание № 1.

В исходном массиве X(n) вывести номера тех элементов массива, которые являются простыми числами.

Задание № 2.

В исходном массиве найти номера двух элементов, наименее отличающихся друг от друга.

Вариант №11

Задание № 1.

Определить количество четных элементов исходного массива X(n).

Задание № 2.

В исходном массиве найти максимальное количество подряд идущих отрицательных элементов.

Вариант №12

Задание № 1.

Определить количество элементов исходного массива X(n), заканчивающихся цифрами 5 или 7.

Задание № 2.

В исходном целочисленном массиве найти минимальное трехзначное число, записанное в этом массиве. Если таких чисел нет, то вывести сообщение об этом.

Вариант №13

Задание № 1.

Определить суммы четных, нечетных, положительных и отрицательных элементов исходного массива X(n).

Задание № 2.

В исходном целочисленном массиве положительных элементов, не превышающих 100, найти номер элемента, имеющего максимальное количество целочисленных делителей.

Вариант №14

Задание № 1.

Определить сумму элементов исходного массива X(n), предшествующих первому отрицательному элементу массива, если отрицательных элементов в массиве нет, выдать соответствующее сообщение.

Задание № 2.

Исходный массив 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 целочисленной матрицы А, описываем ее, затем заполняем с помощью датчика случайных чисел и выводим на экран;

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

Лабораторное задание

1. Набрать, отладить и выполнить программы обработки двумерных массивов Вашего индивидуального задания.

2. Составить блок-схему.

3. Проанализировать работу операторов, пользуясь отладочными режимами.

4. Составить отчет. Защитить работу.

Лабораторная работа состоит из двух задач. Студент выбирает из списка заданий свой индивидуальный вариант и выполняет его. В заданиях исходную матрицу получить с помощью датчика случайных чисел. Значения буквенных переменных задавать с клавиатуры.

Вариант №1

Задание № 1.

Дана матрица целых чисел размером nхm. Найти в ней минимальный элемент и определить его местоположение (номер строки и номер столбца). Если таких элементов несколько, то вывести на экран положение каждого из них.

Задание № 2.

Дана матрица целых чисел размером nхm. Вычислить и вывести значение суммы максимальных элементов из каждой строки.

Вариант №2

Задание № 1.

Дана матрица целых чисел размером nхm. Определить местоположение максимального и минимального элементов матрицы (номер строки и номер столбца), получить разность этих элементов.

Задание № 2.

Дана матрица целых чисел размером nхm. Вычислить и вывести значение суммы минимальных элементов из каждого столбца.

Вариант №3

Задание № 1.

Дана матрица целых чисел размером nхm. Получить одномерный массив, элементы которого – суммы элементов соответствующих столбцов исходной матрицы.

Задание № 2.

Дана матрица целых чисел размером nхm. Получить новую матрицу, элементы строк которой больше элементов исходной матрицы на величину максимального элемента соответствующей строки исходной матрицы.

Вариант №4

Задание № 1.

Дана матрица целых чисел размером nхm. Получить одномерный массив, элементы которого – произведения элементов соответствующих столбцов исходной матрицы.

Задание № 2.

Дана матрица целых чисел размером nхm. Найти максимальный элемент матрицы и его местоположение. Подсчитать и вывести количество элементов матрицы, равных максимальному.

Вариант №5

Задание № 1.

Дана матрица целых чисел размером nхm. Получить одномерный массив, элементы которого – минимальные элементы соответствующих столбцов исходной матрицы.

Задание № 2.

Дана квадратная матрица целых чисел размером nхn. Вычислить скалярное произведение строки с максимальным элементом и столбца с минимальным элементом матрицы.

Вариант №6

Задание № 1.

Дана матрица целых чисел размером nхm. Получить одномерный массив, элементы которого – максимальные элементы соответствующих строк исходной матрицы.

Задание № 2.

Дана матрица целых чисел размером nхm. Получить новую матрицу, элементы столбцов которой больше элементов исходной матрицы на величину минимального элемента соответствующего столбца исходной матрицы.

Вариант №7

Задание № 1.

Дана матрица целых чисел размером nхm. Найти максимальный элемент матрицы, начиная со следующего, все элементы матрицы увеличить на величину найденного элемента.

Задание № 2.

Дана матрица целых чисел размером nхm. Вычесть поэлементно из каждого столбца, кроме i -го, i- й столбец.

Вариант №8

Задание № 1.

Дана матрица целых чисел размером nхm. Каждый элемент матрицы возвести в квадрат, к полученному результату прибавить сумму индексов данного элемента.

Задание № 2.

Дана матрица целых чисел размером nхm. Вычесть поэлементно из каждой строки, кроме i -й, i- ю строку.

Вариант №9

Задание № 1.

Дана матрица целых чисел размером nхm. Элементы последней строки прибавить ко всем элементам других строк матрицы.

Задание № 2.

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

Вариант №10

Задание № 1.

Дана матрица целых чисел размером nхm. Найти минимальный элемент матрицы, начиная со следующего, все элементы матрицы уменьшить на величину найденного элемента.

Задание № 2.

Дана матрица целых чисел размером nхm. Найти строку матрицы с минимальной суммой элементов. Вывести номер строки и сумму ее элементов.

Вариант №11

Задание № 1.

Дана матрица целых чисел размером nхm. Переставить строки матрицы таким образом, чтобы элементы в первом столбце были упорядочены по убыванию.

Задание № 2.

Дана матрица целых чисел размером nхm. Найти столбец матрицы с максимальной суммой элементов. Вывести номер столбца и сумму его элементов.

Вариант №12

Задание № 1.

Дана матрица целых чисел размером nхm. Найти максимальный и минимальный элементы матрицы и поменять их местами.

Задание № 2.

Дана матрица целых чисел размером nхm. Найти сумму элементов строки матрицы, в которой расположен максимальный элемент. Если таких элементов несколько, то найти все суммы элементов соответствующих строк.

Вариант №13

Задание № 1.

Дана матрица целых чисел размером nхm. Найти максимальный и минимальный элементы матрицы и вычислить сумму элементов матрицы, расположенных между найденными элементами.

Задание № 2.

Дана квадратная матрица целых чисел размером nхn. Получить сумму положительных элементов матрицы, превышающих по величине среднее арифметическое всех элементов главной диагонали матрицы.

Вариант №14

Задание № 1.

Дана матрица целых чисел размером nхm.Определить сумму элементов матрицы, предшествующих первому отрицательному элементу, если отрицательных элементов в матрице нет, выдать соответствующее сообщение.

Задание № 2.

Дана квадратная матрица целых чисел размером nхn. Зеркально отразить ее элементы относительно горизонтальной оси симметрии.

Лабораторная работа №14
Строковый тип данных.

Цель работы:

1. Изучение приемов программирования с использованием строковых данных.

2. Приобретение практических навыков в работе со строковыми данными.




Поделиться с друзьями:


Дата добавления: 2014-12-08; Просмотров: 603; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.143 сек.