
- •Федеральное агентство воздушного транспорта
- •Введение
- •Работа в интегрированной среде Qbasic(версияqb45) Начальная информация о системе QuickBasic
- •Загрузка системы QuickBasic
- •Текстовый редактор системы qbasic
- •Выполнение программы
- •Создание и Сохранение программы - команды меню File (Файл)
- •Запуск и перезапуск программы - Команды меню Run (Запуск)
- •Отладка программы
- •Подсистема помощи – help (Справка)
- •Использование окна «Immediate» (Немедленно)
- •ЛАбораторная Работа № 9. Программирование линейных алгоритмов
- •Способы описания типа данных в Qbasic
- •Ввод данных
- •1) Input a, b, c - оператор ввода данных в диалоговом режиме, где a, b, c - список имен переменных
- •Выполнение вычислений
- •Наиболее часто используемые функции языка Qbasic
- •Вывод данных и результатов
- •Лабоpатоpное задание
- •Лабораторное задание
- •Первоначальный вход в цикл выполняется через блок подготовки;
- •Сложные циклы
- •Лабораторное задание
- •Вариант №5
- •Вариант №6
- •Вариант №7
- •Вариант №8
- •Вариант №9
- •Вариант №10
- •Вариант №11
- •Вариант №12
- •Вариант №13
- •Вариант №14
- •Лабораторная работа № 12 Работа с одномерными массивами
- •Лабораторное задание
- •Лабораторное задание
- •Работа со строками. Строковые операции
- •Строковые функции и операторы
- •Лабораторное задание
- •Функции и операторы графического режима
- •Лабораторное задание
Лабораторное задание
Набрать, отладить и выполнить программы обработки одномерных массивов Вашего индивидуального задания.
Составить блок-схему.
Проанализировать работу операторов, пользуясь отладочными режимами.
Составить отчет. Защитить работу.
Лабораторная работа состоит из двух задач. Студент выбирает из списка заданий свой индивидуальный вариант и выполняет его. В заданиях исходный массив элементов получить с помощью датчика случайных чисел. Значения буквенных переменных задавать с клавиатуры.
Вариант №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 Работа с двумерными массивами
Цель работы:
Изучение приемов программирования с использованием двумерных массивов.
Закрепление навыков работы в отладочных режимах среды 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 целочисленной матрицы А, описываем ее, затем заполняем с помощью датчика случайных чисел и выводим на экран;
организуем два вложенных цикла: внешний цикл организует просмотр матрицы А по строкам и вывод результатов на экран, во внутреннем цикле осуществляется поиск минимального элемента в строке.