Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
float d[3][2] – двумерный массив, содержащий 3 строки (с номерами 0, 1, 2) и 2 столбца (с номерами 0, 1);
//объявление массива и инициализация
float mas[3][3]={5.4, 23.22, 1.5, 6.1, -4.7, 8.3, 17.1,18.2,56.3};
float a[][3]={{5,9,4},{1,2,3}}; // объявление массива и инициализация
Обращение к элементу двумерного массива:
d[0][0], d[i][j+1]
Пример. Программа определяет среднее арифметическое элементов целочисленной матрицы размером 4х6 и количество положительных элементов в каждой строке.
//обработка двумерного массива
#include <iostream>
#include <iomanip.h>
using namespace std;
int main()
{
const int nrow=4, ncol=6;
int a[nrow][ncol], i,j;
cout<<"Input element of the array"<<endl;
for (i=0; i<nrow; i++)
for (j=0; j<ncol; j++)
cin>>a[i][j];
// вывод элементов
for (i=0; i<nrow; i++)
{ for (j=0; j<ncol; j++)
cout<<setw(4)<<a[i][j];
cout<<endl;
}
float sum=0;
int n_pol_el;
for (i=0; i<nrow; i++)
{
n_pol_el=0;
for (j=0; j<ncol; j++)
{
sum=sum+a[i][j];
if (a[i][j]>0) n_pol_el++;
}
cout<<"String"<<i<<" Number: "<<n_pol_el<<endl;
}
sum/=nrow*ncol;
cout<<"Arithmetic mean: "<<sum<<endl;
return 0;
}
Задача. В целочисленной матрице определить номер строки, содержащей наибольшее количество элементов, равных нулю.
//обработка двумерного массива
#include <iostream>
#include <iomanip.h>
using namespace std;
int main()
{ const int nrow=4, ncol=5;
int a[nrow][ncol], i, j;
cout<<"Input element of the array"<<endl;
for (i=0; i<nrow; ++i)
for (j=0; j<ncol; ++j)
cin>>a[i][j];
int istr=-1, Maxkol=0, kol;
for (i=0; i<nrow; ++i)
{ kol=0
for (j=0; j<ncol; ++j)
if (a[i][j]==0) ++kol;
if (kol>Maxkol) {istr=i; Maxkol=kol;}
}
// вывод элементов
for (i=0; i<nrow; i++)
{ for (j=0; j<ncol; j++)
cout<<setw(4)<<a[i][j];
cout<<endl;
}
if (istr==-1) cout<<”null rows is not”<<endl; else cout<<”istr=”<<istr<<endl;
return 0;
}
Функции
Пример.
Требуется составить программу нахождения наибольшего значения из трех величин – max(a,b,c). Для ее решения можно использовать вспомогательный алгоритм нахождения максимального значения из двух, поскольку справедливо равенство: max=(a,b,c)=max(max(a,b),c).
# include <iostream> using name space std; int MAX(int, int); int main (void) { int a,b,c, z; cout<<"a,b,c"; cin>>a>>b>>c; z=MAX(MAX(a,b),c); cout<<"max="<<z; retirn 0; } int MAX (int x, int y) { int w; if (x>y) w=x; else w=y; return w; } | # include <iostream> using name space std; int MAX (int x, int y) { int w; if (x>y) w=x; else w=y; return w; } int main (void) { int a, b, c, z; cout<<"a, b, c"; cin>>a>>b>>c; z=MAX(MAX(a,b),c); cout<<"max="<<z; return 0; } |
Формат определения функции:
тип имя_функции (спецификация_параметров)
{тело_функции}
Пример:
void hello_world (void)
{
cout<<”Hello_World!!!\n”;
}
Формат обращения к функции (вызов функции)
имя функции (список_фактических_параметров)
Пример:
# include <iostream>
using namespace std;
void hello_world (void)
{
cout<<”Hello_World!!!\n”;
}
int main ()
{
cout<<”Befor the function\n”;
hello_world(); // вызов функции
cout<<”After the function\n”;
return 0;
}
Результат выполнения программы:
Befor the function
Hello_World!!!
After the function
Оператором возврата из функции в точку ее вызова является оператор return. Он может использоваться в функциях в двух формах:
return; или return (выражение);
Пример
int aquare (int value)
{
return (value*value);
}
В вызывающей функции возвращаемое функцией aquare значение может быть присвоено переменной или использовано при вызове некоторой другой функции.
# include <iostream>
using namespace std;
int aquare (int value)
{
return (value*value);
}
int main ()
{int x, result;
cout<<”Input number”;
cin>>x;
result= aquare(x);// или cout<< aquare(x)<<” are a aquare of number“<<x<<endl;
return 0;}
Прототип функции.
Пример:
// возведение числа в указанную степень
# include <iostream>
# include <math.h>
using namespace std;
void vpower(double, double);
int main()
{
double dtnum, dunum;
cout<<”Input number:”;
cin>>dtnum;
cout<<” Input degree:”;
cin >>dunum;
vpower (dtnum, dunum);
return 0;
}
void vpower(double dt, double du)
{
double danswer; //a:nse
danswer=pow(dt, du);
cout<<dt<<” in degree “<<du<<” =”<<danswer<<endl;
}
Способы передачи значений фактических параметров
из основной программы в функцию
// вызов функции по значению
# include <iostream>
using namespace std;
void swap (float, float);
int main ()
{
float a,c;
cout<<"Input a, c:"<<"\n";
cin>>a>>c;
swap(a,c);
cout<<a<<" "<<c<<"\n";
return 0;
}
void swap (float b, float d)
{
float m;
m=b;
b=d;
d=m;
}
Результаты выполнения программы:
Input a, c:
3.5 -2.7
3.5 -2.7
// использование ссылок в качестве аргументов функций
# include <iostream>
void swap (float &, float &);
int main ()
{
float a,c;
cout<<"Input a, c:"<<"\n";
cin>>a>>c;
swap(a,c);
cout<<a<<" "<<c<<"\n";
return 0;
}
void swap (float &b, float &d)
{
float m;
m=b;
b=d;
d=m;
}
Результаты выполнения программы:
Input a, c:
3.5 -2.7
-2.7 3.5
Ссылки
Формат объявления ссылки
тип & имя
где тип – это тип величины, на которую указывает ссылка;
& - оператор ссылки, означающий, что следующее за ним имя является именем переменной ссылочного типа, например:
Дата публикования: 2015-11-01; Прочитано: 301 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!