Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
икт.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
137.22 Кб
Скачать
  1. Изменение последовательности элементов в векторе.

Изменение последовательности элементов в векторе

Изменение последовательности заключается в перестановке значений

элементов вектора согласно определенному условию. К этому типу

действий относятся алгоритмы сортировки. Самые простые из них

рассмотрены ниже.

Пример 11. Записать массив b(т) в обратном порядке. Элемент Ь(1)

должен стать элементом b(т), b(2) — b(т-1), b(3) — b(т-2)...

Dim kl As Integer = 0

Dim n As Integer = 5

Dim m As Integer = 6

Dim b(n) As Integer

For iAs Integer = 0 To n - 1

b(i) = m

Console.WriteLine("b({0}", i&") = " & b(i))

m = m * 2

Next i

Console.WriteLine(" ")

For iAs Integer = 0 To n / 2 - 1

kl = b(i)

b(i) = b(n - 1 - i)

b(n - 1 - i) = kl

Next i

For iAs Integer = 0 To n - 1

Console.WriteLine("b({0}", i&") = " & b(i))

Next i

Console.ReadLine()

Работапрограммы. В приведенном алгоритме перегруппировка

массива осуществляется в цикле. Меняем элементы местами. Цикл

выполняет n/2-1 итераций. Если организовать цикл, работающий n-1

раз, то он два раза поменяет элементы местами и ничего не изменится

— расположение элементов в массиве останется прежним.

Замена элементов происходит через временную переменную kl.

Счетчик цикла i последовательно изменяется от 0 до n/2-1. Параметр

n - 1 - i определяет номер элемента, с которым будет меняться i -й член

массива. Таким образом, значение первого элемента меняется с n - 1 - 0

= (0)-м, второго — c n - l- 1 = = (1)-м, третьего — c n - l- 2 = ( 2)-м и так

далее.

Пример. Расположить элементы массива a(N) по возрастанию их

значений «Методом пузырька»

DimklAsInteger= 0

Dim n As Integer = 5

Dim b(n) As Integer

b(0) = 24

b(1) = 96

b(2) = 6

b(3) = 12

b(4) = 48

For iAs Integer = 0 To n - 1

Console.WriteLine("b({0}", i&") = " & b(i))

Next i

Console.WriteLine(" ")

For iAs Integer = 0 To n - 2

For j As Integer = i + 1 To n - 1

If b(i) > b(j) Then

kl = b(i)

b(i) = b(j)

b(j) = kl

End If

Next j

Next i

For iAs Integer = 0 To n - 1

Console.WriteLine("b({0}", i&") = " & b(i))

Nexti

Console.ReadLine()

Для сортировки по убыванию «Метод пузырька» необходимо в строке

Ifb(i) > b(j) Thenоператор сравнения «>» поменять на обратный

  1. Сортировка элементов одномерного массива.

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

  1. Двумерный массив, ввод, формирование матрицы и вывод ее на экран.

Двумерный массив — это совокупность однотипных элементов, каждый из

которых имеет две координаты: номер строки и номер столбца. Как правило,

двумерные массивы называют матрицами.

Ввод и формирование матрицы

Ввод матрицы подразумевает ввод каждого элемента с клавиатуры, а

формирование — автоматическое присвоение значений элементам самой

программой.

Пример 01. Ввести матрицу M(3, 4)

Dim M(3, 4) As Double

For iAs Integer = 1 To 3

For j As Integer = 1 To 4

'Резервируем память для M(3,4)

'Задаем номера строк

'Задаем номера столбцов

Console.WriteLine(M(i, j) = Console.ReadLine() 'Запрашиваем ввод

значенияэлемента

M(i, j) = Console.ReadLine()

Next j

Nexti

'Вводим значение элемента

Работа программы. Внешний цикл со

счетчиком i перебирает номера строк, а

внутренний цикл со счетчиком j — номера

столбцов в каждой строке. Циклы работают

по очереди. Внешний цикл переходит к

следующему значению i только после того,

как внутренний переберет все значения j.

Важно четко представлять себе, что

счетчики циклов i и j обозначают только

номера строк и столбцов, а не значение

элементов. Именно на использовании

счетчиков основано применение циклов в

обработке матриц. Счетчики задают

позицию в матрице, а действия с элементом

в этой позиции выполняют уже другие

операторы.

Вывод матрицы на экран

Выводить матрицу на экран нужно в виде строк и столбцов. Как нельзя лучше

для этой задачи подходят вложенные циклы For...Next. Рассмотрим пример.

Пример 02. Вывести на экран в виде матрицы двумерный массив M(3, 4)

For iAs Integer = 1 To 3

For j As Integer = 1 To 4

Console.Write(M(i, j) &" ")

Next j

Console.WriteLine()

Next i

'Выводим элемент строки

'Переводим курсор на след.строку

Работа программы. Вложенный цикл со счетчиком j

выводит элементы строки. Метод

Console.Write(M(i, j) &" ") дает команду на

вывод элементов в одну строку через пробел.

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

Для перевода курсора в очередную строку матрицы после завершения

работы внутреннего цикла используют «пустой» метод Console.WriteLine()

между операторами Next i и Next j.