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




Массивы

Одномерные.

Inta[5]; // объявление целочисленного пятизначного одномерного массива

//ввод одномерного массива

For(i=0;i<5;i++)

Cin>>a[i];

//вывод одномерного массива

For(i=0;i<5;i++)

Cout<<a[i];

Двумерные(матрица).

Inta[5][5] // объявление целочисленного двумерного массива(матрица)

//вводматрицы

For(i=0;i<5;i++)

For(j=0;j<5;j++)

Cin>>a[i][j];

//выводматрицы

For(i=0;i<5;i++)

For(j=0;j<5;j++)

Cout<<a[i][j];

Циклфор

for(начальное значение; условие выполнения; приращение){ оператор 1; оператор 2;..... оператор n;}

Пример:

Найти мин в 5 значен. Массиве

Intmin,I;

Inta[5]; //объявление одномерного массива

For(i=0;i<5;i++)

Cin>>a[i]; //ввод одномерного массива

Min=a[1]; // мин присвоили значение 1 элемента массива, так

как мин должно всегда первоначально иметь

значение

For(i=0;i<5;i++)

If(a[i]<min)min=a[i];// поискмин

Сout<<min;

Return(0);

Поиск максимального аналогично, только мин меняется на max и знак меняется на противоположный.

Найти сумму главной диагонали

 

Красным выделена главная диагональ.

Счетчики
0,0 0,1 0,2 0,3 0,4
1,0 1,1 1,2 1,3 1,4
2,0 2,1 2,2 2,3 2,4
3,0 3,1 3,2 3,3 3,4
4,0 4,1 4,2 4,3 4,4

 

Inta[5][5];

Intsumma,I,j;

For(i=0;i<5;i++)

For(j=0;j<5;j++)

Cin>>a[i][j]; // ввод матрицы(двумерный массив)

Summa=0; //сумма всегда первоначально равна 0, а

произведение 1.

For(i=0;i<5;i++)//поиск суммы главной диагонали

{

For(j=0;j<5;j++)

If(i==j)summa=summa+a[i][j];

}

Cout<<summa;

Return(0);

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

//рациональныйспособ

Inta[5][5];

Intsumma,I,j;

For(i=0;i<5;i++)

For(j=0;j<5;j++)

Cin>>a[i][j]; // ввод матрицы(двумерный массив)

Summa=0; //сумма всегда первоначально равна 0, а

произведение 1.

For(i=0;i<5;i++)//поиск суммы главной диагонали

summa=summa+a[i][i];

Cout<<summa;

Return(0);

Найти сумму побочной диагонали

Красным выделена побочная диагональ.

 

Счетчики
0,0 0,1 0,2 0,3 0,4
1,0 1,1 1,2 1,3 1,4
2,0 2,1 2,2 2,3 2,4
3,0 3,1 3,2 3,3 3,4
4,0 4,1 4,2 4,3 4,4

 

Inta[5][5];

Intsumma,I,j;

For(i=0;i<5;i++)

For(j=0;j<5;j++)

Cin>>a[i][j]; // ввод матрицы(двумерный массив)

Summa=0; //сумма всегда первоначально равна 0, а

произведение 1.

For(i=0;i<5;i++)//поиск суммы побочной диагонали

{

For(j=5;j>0;j--)

If(i==j)summa=summa+a[i][j];

}

Cout<<summa;

Return(0);

Циклwhileспредусловием

Синтаксис данного оператора цикла таков:

while (условие выполнения цикла)

{

оператор 1;

оператор 2;

...

оператор n;

}

Пример: программа, печатающая имя, будет выглядеть так:

inti;

i = 1;

while (i<= 20)

{

cout<< " Name" <<endl;

// endl – переход на следующую строку, то есть с каждым выводом “Name” курсор мыши будет переходить на следующую строку.

i = i + 1;

// увеличение счетчика на 1, чтобы цикл не зациклился и вывилось именно 20 сообщений “Name”

 

}

Return(0);

Более подробно:

Мы определяем переменную i, которая у нас будет служить счетчиком, задаем нашему счетчику начальное значение равное единице перед входом в цикл. В цикле определяем условие, при котором у нас будет он работать, т.е. выполняться заключенные в него операторы. После того, как условие перестанет выполняться, цикл завершится и программа выйдет из него и перейдет к выполнению следующих после цикла операторов (у нас это оператор return 0;). Как я уже сказал, для того, чтобы цикл работал должно выполняться указанное в нем условие (у нас это i <= 20), когда i становится равным 21, то операторы заключенные в тело цикла уже выполняться не будут. Естественно, программист должен обязательно позаботиться, чтобы это условие выхода из цикла когда-нибудь сработало, иначе произойдет зацикливание и программа никогда не завершиться (придется аварийно завершать ее). Для этого у нас есть счетчик, который в каждой итерации (одно выполнения цикла) увеличивает свое значение на единицу.

 

Цикл while с постусловием

 

do

{

оператор 1;

оператор 2;

...

оператор n;

}

while (условие выполнения цикла);

 

Пример: программа, печатающая имя, будет выглядеть так:

inti = 1; do {cout<< "Your name" <<endl;i++;}while (i <= 20); return 0; Важно

Цикл while бывает двух типов: с предусловием и постусловием. В первом варианте тело цикла может ни разу не выполниться, если условие начала цикла не выполняется. Во втором варианте тело цикла выполниться как минимум один раз, т.к условие начала уже второй итерации цикла проверяется не в начале, а в конце.

 

Оператор-переключатель

switch (c) {case const1: i++; break;case const2: i++; break; … default: nota++;} С – целочисленное переключающее выражениеConst1, const2 –константные выраженияI++ - оператор.Если значение с не совпадает ни с одним из константных выражение, то происходит переход к оператору, помеченному меткой default. Пример: Дано число n, нужно определить входит ли это число в диапазон чисел от 1 до 20. IntI,n;Cin>>n;//вводчислаn switch (n) { Case 1: cout<<”Входит”; break; Case2: cout<<”Входит”; break; …// и так до 20 default: cout<<”не входит”;}

 

 

Функция

Вид функции

Тип Имя функции(формальные параметры)

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

Пример:

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

void vvod(int m, int n, int **a)
{
inti,j;
m=3;
n=3;
for(inti=0;i<m;i++)
for(int j=0;j<n;j++)
cin»a[i][j];
}

void vyvod(intm,int n, int **a)
{
inti,j;
m=3;
n=3;
for(inti=0;i<m;i++)
{
for(int j=0;j<n;j++)
cout«a[i][j]«" ";
cout«endl;
}
}


Объявление:
int main()

{
int **a=new int*[n];
for(inti=0;i<m;i++)
a[i]=new int[m];
vvod(m,n,a);
cout«"\n";
vyvod(m,n,a);

Return(0);

}

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-07 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: