Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие Серкова1(06.09.11).doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
4.37 Mб
Скачать

Лабораторная работа № 7

Теория

Операции с одномерными массивами.

Текст задания, создать Приложение для выполнения операций с одномерными массивами.

В Приложении:

а) использовать динамические массивы, процедуры общего назначения;

б) предусмотреть ввод элементов массива с клавиатуры пользователем и случайным образом самим Приложением.

В массив включить не менее 12 элементов: положительные и отрицательные целые числа и число ноль; а необходимые величины вводить с клавиатуры или задавать в программе; вывод массивов осуществить в графические окна;

при выводе массивов, заданных и искомых величин предусмотреть вывод заголовков и необходимых сообщений, например, «Исходный массив» «Сумма положительных элементов массива S=», «Массив не содержит отрицательных элементов»; а в пользовательском интерфейсе применить меню.

Варианты заданий

Таблица 21 Варианты заданий

Задачи

1

2

1

1. Подсчитать количество элементов, не превышающих заданную

величину.

2. Заменить обратной величиной максимальный элемент массива.

3. В массиве элементы с 4-го по 12-й расположить подряд в возрастания их модулей.

4. В массив вставить 5 элементов перед последним положительным элементом, меньшим заданной величины.

2

1. Напечатать индексы элементов массива, равных нулю.

2. В массиве вставить элемент перед максимальным элементом.

3. Поменять местами 2-й элемент с минимальным элементом.

4. Из массива удалить первый и последний элементы, равные нулю.

3

1. Вывести на экран значение и индекс последнего отрицательного элемента массива.

2. Умножить на заданное число максимальный элемент массива.

3. Расположить в порядке возрастания с 5-го по 9-ый элемент массива.

4. Из массива удалить отрицательные элементы, превышающие заданную величину.

Продолжение табл. 21

1

2

4

1. Подсчитать количество элементов, превышающих заданную величину.

2. Возвести в квадрат минимальный элемент массива.

3. Отрицательные элементы массива расположить в порядке убывания их модулей (не меняя местоположения положительных элементов).

4. Из массива удалить первый и последний положительные элементы, меньшие заданной величины.

5

1. Вычислить среднее арифметическое отрицательных элементов

массива.

2. Сменить знак максимального отрицательного элемента массива.

3. Все положительные элементы переставить в начало массива.

4. В массиве первый и последний положительные элементы переставить в начало массива.

6

1. Вычислить сумму отрицательных элементов массива, превышающих заданную величину.

2. Заменить нулем минимальный положительный элемент массива.

3. Расположить в порядке убывания элементы массива, превышающие заданную величину.

4. В массив вставить по одному элементу перед максимальным и минимальным отрицательными элементами.

7

1. Подсчитать количество элементов, превышающих заданную величину.

2. Максимальный по модулю отрицательный элемент массива заме­нить его обратной величиной.

3. Расположить в порядке возрастания отрицательные элементы, превышающие заданную величину.

4. В массив вставить по одному элементу перед максимальным и минимальным положительными элементами.

8

1. Вычислить среднее арифметическое элементов массива, меньших

заданной величины.

2. Поменять местами минимальный по модулю положительный эле­мент с первым элементом массива.

3. В массиве все элементы меньше заданной величины расположить

после первого элемента.

4. В массиве минимальный и максимальный по модулю элементы перенести в конец массива.

Продолжение табл. 21

1

2

9

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

2. Умножить на заданное число максимальный элемент массива.

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

4. В массиве минимальный и максимальный элементы перенести в конец массива.

10

1. Вывести на экран значения элементов, не превышающих заданную

величину.

2. Возвести в квадрат максимальный по модулю элемент массива.

3. Расположить в порядке убывания первые 7 элементов массива.

4. Из массива удалить все положительные элементы.

11

1. Вычислить сумму элементов массива, не превышающих заданной

величины.

2. Сменить знак минимального по модулю элемента массива.

3. В массиве первые 6 элементов расположить в порядке возрастания их модулей.

4. В массиве все элементы равные нулю расположить после первого отрицательного элемента.

12

1. Вычислить сумму положительных элементов массива.

2. Вычислить минимальный положительный элемент массива заменить его обратной величиной.

3. В массиве расположить элементы в порядке возрастания их моду­лей.

4. Из массива удалить все элементы, меньшие заданной величины.

13

1. Вычислить среднее арифметическое отрицательных элементов массива, превышающих заданную величину.

2. Поменять местами минимальный элемент массива и последний элемент.

3. Все отрицательные элементы массива переставить в конец массива.

4. Из массива удалить элементы с нечетными индексами.

14

1. Вычислить сумму отрицательных элементов массива.

2. Заменить нулем максимальный отрицательный элемент массива.

3. В массиве первый и последний элементы, превышающие заданную величину, переставить в начало массива.

4. В массиве первый и последний отрицательные элементы переставить в конец массива.

Продолжение табл. 21

15

1. Вывести на экран элементы массива, меньшие заданной величины.

2. Разделить на заданное число максимальный по модулю отрицательный элемент массива.

3. Расположить в порядке возрастания положительные элементы

массива.

4. Из массива удалить все отрицательные элементы, большие заданной величины.

16

1. Вычислить среднее арифметическое элементов массива, превышающих заданную величину.

2. Возвести в квадрат минимальный по модулю положительный элемент массива.

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

4. В массив вставить по одному элементу перед первым и последним

отрицательными элементами.

17

1. Вычислить сумму положительных элементов массива, меньших заданной величины.

2. Поменять местами первый и максимальный по модулю отрицательный элемент массива.

3. В массиве положительные элементы, меньшие заданной величины, расположить после первого положительного элемента.

4. Из массива удалить все элементы, индексы которых кратны трем.

18

1.Подсчитать количество положительных элементов массива, не

превышающих заданную величину.

2. Возвести в квадрат максимальный отрицательный элемент массива.

3. Расположить в порядке возрастания четные элементы массива.

4. Из массива удалить все отрицательные элементы, имеющие четные индексы.

19

1. Подсчитать количество отрицательных элементов в массиве.

2. Возвести в квадрат максимальный по модулю отрицательный элемент массива.

3. Расположить в порядке убывания элементы массива, меньшие

заданной величины.

4. В массив вставить по одному элементу перед первым отрицательным и последним положительным элементами.

Продолжение табл. 21

20

1. Вывести на экран индексы отрицательных элементов массива.

2. Максимальный отрицательный элемент массива заменить его

обратной величиной.

3. Расположить в порядке убывания последние 6 элементов массива.

4. Из массива удалить все отрицательные элементы

21

1. Подсчитать количество элементов массива равных нулю.

2. Минимальный по модулю положительный элемент массива заме­нить его обратной величиной.

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

4. Перед каждым третьим элементом массива вставить новый эле­мент равный 25.

22

1. Вывести на экран значение и индекс первого из элементов массива, меньших заданной величины.

2. Поменять местами второй и максимальный по модулю элементы

массива.

3. В массиве положительные элементы, меньшие заданной величины,

расположить в порядке убывания их модулей.

4. Из массива удалить все отрицательные элементы, меньшие заданной величины.

23

1.Вычислить сумму отрицательных элементов массива, превышающих заданную величину.

2.Умножить на заданное число максимальный элемент массива.

3. Расположить элементы в порядке возрастания их модулей.

4. Из массива удалить все отрицательные элементы, большие заданной величины.

24

1. Вычислить среднее арифметическое отрицательных элементов

массива.

2. Поменять местами минимальный по модулю положительный эле­мент с первым элементом массива.

3. В массиве первые 6 элементов расположить в порядке возрастания их модулей.

4. В массиве первый и последний отрицательные элементы переставить в конец массива.

Окончание табл. 21

25

1.Вычислить сумму положительных элементов массива, не

превышающих заданную величину.

2.Разделить на заданное число максимальный элемент массива.

3. Расположить элементы в порядке убывания их модулей.

4. Из массива удалить все положительные элементы, большие заданной величины.

26

1.Подсчитать количество элементов, превышающих заданную

величину.

2.Возвести в квадрат максимальный по модулю элемент массива.

3.Все отрицательные элемент массива переставить в конец массива.

4. Из массива удалить все отрицательные элементы, имеющие четные индексы.

Примечание: нечетные элементы – это элементы с нечетными индексами.

Содержание отчета

1. Эскиз формы (форм) до назначения объектам свойств.

2. Эскиз формы (форм) после назначения объектам свойств.

3. Таблицу свойств объектов (по формам).

4. Структурная схема приложения.

5. Список идентификаторов.

6. Блок-схемы алгоритмов и программные коды процедур общего назначения (ввод - вывода массивов, запись массива в файл и чтение массива из файла и т.п.).

7. По каждому заданию привести текст задачи, блок–схему алгоритма и программный код.

Пример оформления отчета.

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

2) Таблица 22. Используемые переменные.

Назначение переменной

Имя

Тип

Исходный массив

а

Integer

Максимальный элемент

Max

Integer

Квадрат максимального элемента

Max1

Integer

Переменная цикла

i

Integer

3) Эскиз формы:

4) Таблица 23. Свойства объектов.

Объект

Name

Caption

Text

Visible

Command1

Command1

Выполнить

нет

True

Command1

Command1

Выход

нет

True

TextBox1

Txn

нет

1

True

TextBox1

Tmx

нет

нет

True

Label

Label3

Размерность массива

нет

True

ListBox

List1

нет

нет

True

Label

Label2

Максимальный элемент

нет

True

Label

Label3

Исходный массив

нет

True

  1. Блок–схема алгоритма:

да

нет

да

нет

  1. Программные коды процедур:

Dim a() As Integer

Private Sub CommandButton1_Click()

Dim srk As String

n = Val(Txn.Text)

ReDim a(1 To n)

List1.Clear

For i = 1 To n

a(i) = Int(Rnd * 100 - 50)

srk = " a(" + Str(i) + ")= " + Str(a(i))

List1.AddItem (srk)

Next i

Max = -10000

For i = 1 To n

If a(i) > Max Then Max = a(i)

Next i

If Max <> a(1) Then

Tmx.Text = Max

Else

Tmx.Text = "максимального элемента нет "

End If

End Sub

Private Sub CommandButton2_Click()

End

End Sub.

7) Результаты:

Задание 2. Подсчитать значение КР – количество положительных значений в массиве X и КО – количество отрицательных значений в массиве X. Если КР будет больше КО, то вывести массив Х без изменений, иначе – заменить 1-й элемент массива Х на значение КР, а 2-й – на значение КО; массив вывести. Элементы массива Х вычисляются по формуле:

Таблица 24. Используемые переменные.

Назначение переменной

Имя

Тип

Исходный массив

а

Single

Полученный массив

х

Single

Количество отрицательных элементов

КО

Integer

количество положительных элементов

КР

Integer

Переменная цикла

i

Integer

4) Таблица 25. Свойства объектов.

Объект

Name

Caption

Text

Visible

CommandButton

CommandButton1

Выполнить

нет

True

Command1

Command1

Выход

нет

True

TextBox1

Txn

нет

1

True

TextBox1

Tmx

нет

нет

True

Label

Label3

Размерность массива

нет

True

ListBox

List1

нет

нет

True

Label

Label2

Максимальный

элемент

нет

True

Label

Label3

Исходный массив

нет

True

Блок– схема

На листе Excel разместить необходимые элементы управления.

Textbox1

CommandButton1

Рисунок 11– Окно Excel

Событийная процедура кнопки Вычислить.

Private Sub CommandButton1_Click()

Dim x(1 To 8) As Single, i, kp, ko As Integer

Dim a(1 To 8) As Single

' Вычисление количество отрицательных и положительных элементов

kp = 0

ko = 0

ListBox1.Clear

For i = 1 To 7

a(i) = Cells(3 + i, 2)

x(i) = a(i) * Sin(a(i)) - 1.7

ListBox1.AddItem ("X(" + Str(i) + " )= " + Format(x(i), "0.0000"))

If x(i) < 0 Then ko = ko + 1

If x(i) > 0 Then kp = kp + 1

Next i

TextBox1.Value = Str(ko)

TextBox2.Value = Str(kp)

If kp > ko Then

ListBox1.Clear

For i = 1 To 7

ListBox1.AddItem ("X(" + Str(i) + " )= " + Format(x(i), "0.0000"))

Next i

Else

x(1) = kp

x(2) = ko

ListBox1.Clear

For i = 1 To 7

ListBox1.AddItem ("X(" + Str(i) + " )= " + Format(x(i), "0.0000"))

Next i

End If

End Sub.

Контрольные вопросы

1. Дайте определение массива.

2. Чем отличается массив от простой переменной?

3. Что такое статический и динамический массив? В чем их отличие?

4. Как получить доступ к элементу массива?

5. Синтаксис объявления статического и динамического массива.

6. Изменение размера динамического массива.

7. Какой тип данных можно храниться в массиве?

Лабораторная работа №8.

Обработка двумерных массивов.

Теория

Варианты заданий

Вариант 1

Вычислить сумму элементов матрицы А(5,5), расположенных выше главной диагонали и удовлетворяющих условию: 1 < aij  2,5. Элементы матрицы сформировать по правилу: aij = i + 0,5j.

Вариант 2

Построить матрицу В(5,4), каждый элемент которой находится по формуле: , где Si – сумма элементов i-той строки матрицы А.

.

Вариант 3

Сформировать матрицу С(5,5) по правилу: . Найти сумму отрицательных элементов матрицы, расположенных ниже побочной диагонали (i, j = 1,…,5).

Вариант 4

Сформировать матрицу В(9,9) по правилу: bij = cos(i) – sin(j). Подсчитать количество строк матрицы, начинающихся с отрицательного элемента .

Вариант 5

Переписать первые элементы каждой строки матрицы А(7,3) в массив D, если в строке есть элемент больше 13. Если в строке нет такого элемента, то записать ноль в массив D в соответствующем месте. Вывести исходную матрицу и образованный массив на печать одновременно. Элементы матрицы А задать самостоятельно.

Вариант 6

Определить суммы положительных элементов матрицы А для каждой строки, исключая элементы главной диагонали.

.

Вариант 7

Подсчитать количество нулевых элементов среди элементов, расположенных выше главной диагонали матрицы В(8,8), которые формируются по правилу:

bij = cos – 16, (i, j = 1,…,8).

Вариант 8

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

.

Вариант 9

Найти среднее геометрическое элементов каждого чётного столбца и среднее арифметическое элементов каждого нечетного столбца матрицы.

.

Вариант 10

Умножить четные строки матрицы R на m = sin(k), где k – номер умножаемой строки. Полученную матрицу напечатать.

.

Вариант 11

Дана матрица А(4,5). Из нее образовать две матрицы: в одной оставить все отрицательные элементы матрицы А (на месте положительных поставить 0), в другой матрице оставить все положительные элементы ( на месте отрицательных поставить 0). Элементы матрицы А задать самостоятельно.

Вариант 12

В исходной матрице найти количество четных элементов, больших 4, и нечетных элементов, меньших 67.

.

Вариант 13

В исходной матрице заменить все элементы, по модулю меньшие 1, на 1. Подсчитать сумму элементов исходной и полученной матрицы отдельно. Отпечатать матрицу С после замены элементов.

.

Вариант 14

В построенной матрице A(7,4) определить количество элементов, для которых выполнено условие: -0,5 < aij < 0,5. Элементы матрицы строятся по правилу: aij = sin (i + j / 2). Матрицу напечатать.

Вариант 15

Найти произведение элементов главной диагонали и сумму элементов побочной диагонали матрицы В(6,6). Указать большее из двух найденных значений. Элементы матрицы формируются по правилу: bij = 2 i + j.

Вариант 16

Дана матрица Z. Найти сумму элементов для каждого столбца, начинающегося с положительного элемента.

.

Вариант 17

Определить сумму и количество элементов матрицы А(6,6), формирующихся по правилу: aij = cos (i + j), удовлетворяющих условию: 0.3 <= aij < 1, среди элементов, находящихся ниже побочной или выше главной диагонали.

Вариант 18

Дана матрица Y(5,5) (элементы матрицы выбрать самостоятельно). Вычислить элементы новой матрицы Z(5,5) по правилу: zij = yij / ki, где ki – количество положительных элементов i – той строки.

Если в i – той строке положительных элементов нет, то i – тая строка в матрице Z должна быть заполнена нулями. Отпечатать для сравнения обе матрицы Y и Z.

Вариант 19

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

.

Вариант 20

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

.

Вариант 21

Для матрицы В определить количество четных элементов, расположенных на главной диагонали и выше неё. Элементы матрицы В формируются по правилу:

bij = 100RND (1), (i, j = 1, 2, …, 5).

Примечание: элементы матрицы формируются случайным образом с помощью функции RND, генерирующей случайное число в диапазоне от 0 до 1.

Вариант 22

С помощью элементов исходной матрицы А(5,5) построить новые матрицы С(5,5) и В(5,5), элементы которых находятся по правилу:

.

.

Вариант 23

Дана матрица А(7,7) (элементы матрицы выбрать самостоятельно). Найти значение K= , где P– произведение положительных элементов матрицы А, S – сумма отрицательных элементов матрицы А, T – произведение элементов побочной диагонали.

Вариант 24

Найти разность двух матриц и определить количество элементов, строго больших 2.5, среди элементов полученной матрицы.

.

Вариант 25

Определить суммы отрицательных элементов матрицы А(5,4) в каждой строке и напечатать матрицу А(5,5), в которой пятый столбец образован из полученных сумм.

Вариант 26

Исходную А(4,4) матрицу умножить на -20. В ней подсчитать: 1) количество ненулевых элементов; 2) количество положительных элементов; 3) количество отрицательных элементов; 4) количество нулевых элементов. Вывести измененную матрицу. Элементы матрицы задать самостоятельно.

Вариант 27

Дана матрица В(6,6). Выяснить, верно ли, что наибольшее из значений элементов главной диагонали больше, чем наименьшее из значений элементов побочной диагонали. Элементы матрицы задать самостоятельно.

Пример оформления

Задание. Построить вещественную матрицу A (10,10) по правилу: aij = cos (i2 + 5).Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее. Вывести на печать для сравнения обе матрицы.

Рисунок 12 – Результат работы приложения

Блок – схема

нет

да

Событийная процедура кнопки Вычислить.

Private Sub CommandButton1_Click()

Dim A(1 To 10, 1 To 10) As Single, i, j, k As Integer

For i = 1 To 10

For j = 1 To 10

A(i, j) = Cos(i ^ 2 + 5)

Cells(i + 3, j) = A(i, j)

Next j

Next i

For i = 1 To 10

For j = 1 To 10

If i <= j Then A(i, j) = 0

Cells(i + 18, j) = A(i, j)

Next j

Next i

End Sub

Контрольные вопросы

1. Дайте определение двумерного массива.

2. Что такое статический и динамический массив? В чем их отличие?

3. Как получить доступ к элементу массива?

4. Синтаксис объявления статического и динамического массива.

5. Изменение размера динамического массива.

  1. Какой тип данных можно храниться в массиве?