КАТЕГОРИИ: Архитектура-(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 колонок). В случае, когда массив содержит много элементов и перечисление их при вводе-выводе становится неудобным, организуются циклы. Поскольку количество элементов массива всегда известно, для ввода и вывода значений элементов массива используются циклы с заранее известным числом повторений Ниже приведены фрагменты программ, представляющие возможные варианты ввода и вывода значений элементов одномерных массивов:
ПРИМЕР 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 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 целочисленной матрицы А, описываем ее, затем заполняем с помощью датчика случайных чисел и выводим на экран; - организуем два вложенных цикла: внешний цикл организует просмотр матрицы А по строкам и вывод результатов на экран, во внутреннем цикле осуществляется поиск минимального элемента в строке. Лабораторное задание 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; Просмотров: 630; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |