КАТЕГОРИИ: Архитектура-(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) |
Исследование двумерного массива
Двумерные массивы У двумерного массива имеется два индекса: i – номер строки, j – номер столбца. Индексация двумерного массива представлена на рис. 6.4. Рис. 6.4 Индексация двумерного массива
Для использования двумерного массива в программе, необходимо: 1. Объявить массив в функции main(): тип_данных имя_массива [количество строк][количество столбцов]; double a[5][9]; // двумерный массив из 5 строк, 9 столбцов 2. Проинициализировать массив; 3. Провести вычисления, исследования. Способы инициализации двумерного массива a[n][m]: 1. инициализация числами: double a[2][3]={{1, 2.6, -9}, {0, -2.81, 134.05}}; 2. с клавиатуры: for(i=0; i<n; i=i+1){ for(j=0; j<m; j=j+1){ cout<<”a[“<<i<<”][”<<j<<”]=”; cin>>a[i][j]; } } 3. по формуле: ai,j=i+j for(i=0; i<n; i=i+1){ for(j=0; j<m; j=j+1){ a[i][j]=i+j; } }
1. Поменять местами строки с индексами i1, i2:
Примечание. Если требуется поменять местами столбцы с индексами j1, j2, то цикл организуется по i. 2. Вычислить формулу :
Примечание. Если требуется вычислить выражение по формуле , то перед циклом надо задать «P =1», в теле цикла «P=P•f». 3. Условия для исследования квадратной матрицы (количество строк и столбцов совпадает): для элементов на главной диагонали: i=j; для элементов над главной диагональю: i<j; для элементов под главной диагональю: i>j; для элементов на побочной диагонали: i+j=n -1; для элементов над побочной диагональю: i+j<n -1; для элементов под побочной диагональю: i+j>n -1. Примечание. Если требуется определить, например, сумму элементов, находящихся над главной диагональю, то задаем двумерный цикл по i, j и в теле цикла ставим дополнительное условие «i<j». Пример 6.3. Массив а (6, 8) задан формулой аi,j= 3 i- 5 j. Найти сумму элементов во второй строке, поменять местами первую и третью строки, найти произведение по формуле . Решение. Данную задачу можно разбить на несколько этапов: 1. задать массив по формуле и вывести его на экран; 2. найти сумму элементов во второй строке и вывести ее на экран; 3. поменять местами первую и третью строки; 4. вывести на экран измененный массив; 5. найти произведение по формуле и вывести его на экран. Каждый указанный этап решается с помощью циклов. Все циклы целесообразно использовать с предусловием (в программе – оператор for). На первом этапе следует организовать двумерный цикл по i, по j, т.к. необходимо задать значениями и вывести на экран весь массив. На втором этапе перед циклом необходимо задать S =0, а в теле цикла по j насчитывать значение S. Индекс i задаем как 1, что соответствует второй строке. Следует отметить, что нельзя считать сумму по какой-то определенной строке (столбце, диагонали) внутри двумерного цикла, т.к. в этом случае S будет больше в разы (зависит от количества строк/столбцов).На третьем этапе индексы строк берем i =0 – для первой строки, i =2 – для третьей строки. Замена строк организуется в одномерном цикле по j. На четвертом этапе матрица а должна быть отражена на экране. Нам требуется показать, что замена строк выполнена верно.На пятом этапе перед циклом следует задать P =1, а в теле цикла насчитывать произведение. Цикл организуем одномерный по i от 0 до 2 включительно, т.к. согласно формуле изменяется только i.
Рис. 6.7. Блок-схема Код программы (Visual Studio) с оператором for (предусловие): // proga29.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; int main() { double a[6][8]; double S, tmp, P; int i, j; cout<<"Massiv a:"<<endl; for(i=0; i<6; i=i+1){ for(j=0; j<8; j=j+1){ a[i][j]=3.0*i-5.0*j; cout<<setw(5)<<a[i][j]; } cout<<endl; } S=0; for(j=0; j<8; j=j+1){ S=S+a[1][j]; } cout<<"S="<<S<<endl; for(j=0; j<8; j=j+1){ tmp=a[0][j]; a[0][j]=a[2][j]; a[2][j]=tmp; } for(i=0; i<6; i=i+1){ for(j=0; j<8; j=j+1){ cout<<setw(5)<<a[i][j]; } cout<<endl; } P=1; for(i=0; i<2; i=i+1){ P=P*(a[i][1]-a[i][0]); } cout<<"P="<<P<<endl; return 0;} Результат выполнения программы:
Глава 7 Задания и варианты для лабораторных работ. Методические указания Лабораторная работа выполняется в виде отчета. При выполнении каждого задания необходимо наличие следующих элементов: 1. титульный лист; 2. постановка задачи; 3. блок-схема; 4. программа на языке С++; 5. результат выполнения программы. Задания выполняются по вариантам.
Дата добавления: 2017-01-13; Просмотров: 360; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |