Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Циклы перебора матрицы

Читайте также:
  1. I. ПОНЯТИЕ МАТРИЦЫ.
  2. Биогеохимические циклы в биосфере
  3. Более подробно техника использования матрицы многокритериальной оценки изложена в учебном пособии на стр. 146 – 148.
  4. Вычисление собственных значений матрицы Методом Данилевского
  5. Группировка страновых рынков при помощи портфельной матрицы
  6. Жизненные циклы социальных движений
  7. Жизненные циклы товарной категории, разновидности товара, товара и торговой марки
  8. Инверсия доминирования, доминирование и циклы формулы любви.
  9. Использование результатов анализа матрицы для разработки корпоративной стратегии.
  10. Используя свойства матрицы связанные с ее рангом, получен метод расчета ранга наиболее часто использующийся на практике.

Пусть есть матрица A, STR=3 и STLB=4

a00 a01 a02 a03

a10 a11 a12 a13

a20 a21 a22 a23

 

1 способ: перебор конкретной строки с номером N

N--; // номер превратился в индекс строки

for (j=0; j<STLB; j++)

{

алгоритм обработки

}

 

2 способ: перебор всей матрицы построчно

for (i=0; i<STR;i++)

{

for(j=0;j<STLB;j++)

{

алгоритм обработки

}

//конец i-ой строки

}

 

3 способ: перебор конкретного столбца с номером M

 

M--; // номер превратился в индекс столбца

for (i=0;i<STR;i++)

{

алгоритм обработки

}

 

 

4 способ: перебор всей матрицы по столбцам

for(j=0;j<STLB;j++)

{

for(i=0;i<STR;i++)

{

алгоритм обработки

}

// конец j-го столбца

}

 

Задача: дана статическая матрица, заполнить её с клавиатуры, вывести на экран как матрицу (manip)

вычислить сумму в каждой строке отдельно и во всей матрице в целом +

 

#include <iomanip>

#define STR 3

#define STLB 4

int main(void)

{

int A[STR][STLB]

int i, j, sum, sumSTR;

for(i=0;i<STR;i++) // ввод матрицы

{

for(j=0;j<STLB;j++)

cin>>A[i][j];

}

for(i=0;i<STR;i++)

{

for(j=0;j<STLB;j++)

cout<<setw(5)<<A[i][j];

cout<<endl;

}

sum=0;

sumSTR=0;

for(i=0;i<STR;i++)

{

sumSTR=0;

for(j=0;j<STLB;j++)

sumSTR+=A[i][j];

cout<<endl<<sumSTR;

sum+=sumSTR;

}

cout<<sum<<endl;

return 0;

}

 


 

26. Динамическое выделение памяти под данные в программах на С++ (переменная любого типа, строка, одномерный и двумерный числовые массивы). Освобождение памяти.

27. Взаимосвязь массивов и указателей в языке С++: определение адреса и значения по адресу для любого элемента одномерного и двумерного массива, объявленные статически или динамически.


+++

28. Программирование с использованием функций пользователя. Принципы построения функций.

29. Объявление (прототип) функции и оператор вызова функции языка С++. Параметры и аргументы функции.

30. Определение функций языка С++. Результат функций.

Функции языка С++

Любая нетривиальная задача требует разбиения ее на несколько логически завершенных частей, каждая из которых реализуется определенной функцией. Выполнение программы начинается с функции main, а она вызывает другие функции.



Наличие функций избавляет от повторного программирования. Программа, написанная с помощью функций, имеет более четкую структуру. Небольшую функцию легче написать, отладить и модифицировать.

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

Каждая функция может находиться в отдельном файле или несколько функций в одном файле, в любом порядке, но при этом каждая функция пишется от начала до конца.

Каждая функция состоит из заголовка и тела.

Заголовок функции – это директивы препроцессора и имя функции. (//Если все функции помещены в одном файле, директивы препроцессора пишутся в самом начале файла один раз.) Имя функции состоит из типа функции, названия функции и в круглых скобках параметры вместе с их типом, разделенные запятой.

Тип функции определяется типом результата функции, передаваемого через оператор return.Если функция не передает результат, тип функции void. Если тип функции не указан, то по умолчанию она типа int.



Параметры функции – это переменные для исходных данных функции. Если параметров нет – пишем void.

Тело функции пишется аналогично телу main. После {скобки объявляется внутренняя переменная под результат функции или для построения алгоритма функции. Затем следуют операторы, реализующие алгоритм. При этом параметры используем как известные величины(исходные данные). Оператор return обычно завершает функцию. Хотя он может быть написан в любом месте функции.

Return; //при этом тип функции void.

Returnres;//при этом тип функции как у переменной res

returna*b;//при этом тип выражения совпадает с типом функции

return 1; //если результат выражен константой

Сама по себе функция не выполняется, необходимо, чтобы в теле другой функции, обычно main, появился оператор вызова этой функции. При вызове функции используются аргументы функции (//в том же порядке и количестве, что и параметры), ими могут быть константы, переменные(заранее объявленные и определенные) или выражения.

//Аргументы функции – это конкретные значения исходных данных, передаваемых параметрам в процессе выполнения функции. Функции, кроме типа void, могут вызываться внутри выражения.

Компилятор контролирует правильность написания каждого оператора, в том числе и оператора вызова функции: он сравнивает вызов с прототипом – вызов должен соответствовать прототипу.

Прототип – перечень характеристик функции и фактически повторяет имя функции и завершается ; .

Прототип функции помещается перед именем вызывающей функции, (//содержит тип функции, название функции и в круглых скобках список типов параметров. Завершается ; ).

Чаще прототип помещают в правильно оформленный заголовочный файл, а заголовочный файл подключают #include

//Если тип аргумента в операторе вызова функции не соответствует прототипу, он автоматически (если это возможно) приводятся к нужному типу и функция вызывается правильно; в противном случае возникает ошибка компиляции.

 


Дата добавления: 2015-01-29; просмотров: 33; Нарушение авторских прав


<== предыдущая лекция | следующая лекция ==>
Статические матрицы | Передача в функцию адреса аргумента
lektsii.com - Лекции.Ком - 2014-2018 год. (0.009 сек.) Главная страница Случайная страница Контакты