
- •Алгоритм, свойства алгоритмов
- •Блок-схемы, их построение.
- •Одномерные массивы, их объявление, формирование и вывод на экран.
- •Расчет суммы и произведения в цикле
- •Изменение последовательности элементов в векторе.
- •Сортировка элементов одномерного массива.
- •Вставка элемента в упорядоченный массив.
- •Транспонирование матрицы.
- •Перемещение, вставка и удаление элементов матрицы.
- •Выделение элементов, стоящих на главной диагонали, выше или ниже нее.
- •Выделение элементов, стоящих на побочной диагонали, выше или ниже нее.
Изменение последовательности элементов в векторе.
Изменение последовательности элементов в векторе
Изменение последовательности заключается в перестановке значений
элементов вектора согласно определенному условию. К этому типу
действий относятся алгоритмы сортировки. Самые простые из них
рассмотрены ниже.
Пример 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оператор сравнения «>» поменять на обратный
Сортировка элементов одномерного массива.
Вставка элемента в упорядоченный массив.
Двумерный массив, ввод, формирование матрицы и вывод ее на экран.
Двумерный массив — это совокупность однотипных элементов, каждый из
которых имеет две координаты: номер строки и номер столбца. Как правило,
двумерные массивы называют матрицами.
Ввод и формирование матрицы
Ввод матрицы подразумевает ввод каждого элемента с клавиатуры, а
формирование — автоматическое присвоение значений элементам самой
программой.
Пример 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.