Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторки механики 18-06-12 часть 2.doc
Скачиваний:
31
Добавлен:
22.03.2016
Размер:
1.14 Mб
Скачать

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

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

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