КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Типовые задачи на обработку двумерных массивов
End Sub 'Процедура вывода двумерного массива в таблицу Private Sub Command2_Click() MSFlexGrid1.Rows= n+1 'Общее количество строк в таблице MSFlexGrid1.Cols= m+1 'Общее количество столбцов
'Формирование заголовков столбцов MSFlexGrid1.Row=0 'Установка на нулевую строку For j:=0 To m 'Цикл для вывода номеров столбцов MSFlexGrid1.Col=j 'Установка на столбец с номером j MSFlexGrid1.ColWidth(j)=700 'Установка ширины столбцов MSFlexGrid1.Text=j 'Вывод номеров столбцов Next j
'Формирование заголовков строк MSFlexGrid1.Col=0 'Установка на нулевой столбец MSFlexGrid1.ColWidth(0)=300 'Установка ширины нулевого столбца For i:=0 To n 'Цикл для вывода номеров строк MSFlexGrid1.Row=i 'Установка на строку с номером i MSFlexGrid1.Text=i 'Вывод номеров строк Next i
'Вывод элементов массива в таблицу по строкам For i:=0 To n-1 'Цикл по строкам MSFlexGrid1.Row=i+1 'Установка на i +1-ую строку For j:=0 To m-1 'Цикл по столбцам FlexGrid1.Col=j+1 'Установка на j +1-ый столбец MSFlexGrid1.Text=a(i,j) 'Вывод a ij в ячейку таблицы i +1, j +1 Next j Next i К типовым задачам с двумерными массивами относятся задачи на вычисление суммы, произведения, количества, среднего арифметического, максимума, минимума элементов каждой строки или каждого столбца, заданной строки или заданного столбца и др. Вычисления подобного рода осуществляются при помощи стандартных приемов, особенность которых заключается в организации вложенных циклов при обработке массивов: For i:= a1 To b1 Цикл, который содержит другой цикл называют внешним циклом, а цикл, содержащийся в теле другого цикла, называют внутренним. Все операторы внутреннего цикла должны полностью располагаться в теле внешнего цикла. Всякий раз, когда внутренний цикл завершается, внешний цикл увеличивает значение своего счетчика на 1, и внутренний цикл выполняется вновь. Поэтому, если за счетчик внешнего цикла взять индекс строки, а за счетчик внутреннего – номер столбца, то обработка двумерного массива будет идти по строкам, а если наоборот, то по столбцам. Пример 1. Заполнить двухмерный массив размерностью n * m случайными целыми числами из диапазона [-40,40]. Определить: - сумму элементов каждой строки; - максимальные значения для каждого столбца; - произведение элементов k -ой строки, значения которых лежат в диапазоне от 20 до 40. Фрагмент программного кода: Dim i As Integer,j As Integer,s As Integer Dim max As Integer,k As Integer,p As Integer Dim flag As Boolean Dim a(1 To 30, 1 To 30) As Integer 'Очистка текстовых окон Edit4.Text="": Edit5.Text="": Edit6.Text="" 'Вычисление сумм элементов в каждой строке For i=1 To n 'Цикл по строкам s=0; For j=1 To m s=s+a(i,j); 'Суммирование элементов i-ой строки Next J Edit4.Text= Edit4.Text+Str(s)+ " " 'Вывод суммы i-ой строки Next i 'Вычисление максимальных элементов в каждом столбце For j=1 To m 'Цикл по строкам max=a(1,j) 'Установка начального максимума по первому элементу 'в j-ом столбце For i=1 To n'Цикл по строкам If a(i,j) > max Then max=a(i,j) Next i 'Вывод максимального элемента j-го столбца Edit5.Text= Edit5.Text+Str(max)+ " " Next j 'Вычисление произведения элементов k-ой строки, попавших в диапазон [20,40] k=Val(Edit3.Text) 'Ввод номера строки p=1 flag=false 'Предполагаем, что нет элементов, попавших в диапазон [20,40] For j=1 To m'Цикл по столбцам If (a(k,j)>20) and (a(k,j)<40) Then 'Проверка условия попадания 'в диапазон [20,40] p=p*a(k,j): flag=True
Дата добавления: 2014-11-16; Просмотров: 724; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |