Программирование задач с использованием функций

Содержание

Слайд 2

Указатели и ссылки Описание указателя: * Пример: int *p; -5 *

Указатели и ссылки

Описание указателя:
<тип> *<идентификатор>
Пример: int *p;

-5

*

int *p;
p=new int;
*p=-5;

int *p,

c=-5;
p=&c;

ИЛИ

*

-5

c

p

p

0010

0001

0001

-5

переменная

адрес

значение переменной

Указатель – это переменная, которая содержит адрес другой переменной

Оператор & - взятие адреса

p

Слайд 3

Функции в С++ #Директивы препроцессору Глобальные данные (переменные, константы) Функция 1(список

Функции в С++

#Директивы препроцессору
Глобальные данные (переменные, константы)

Функция 1(список формальных параметров)
Локальные данные

Функция

2(список формальных параметров)
Локальные данные

Функция n(список формальных параметров)
Локальные данные

Основная функция main()
Локальные данные
Функция1(фактические параметры)
Функция2(фактические параметры)

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

Слайд 4

Общий вид функции: ( , , …) { тело функции return

Общий вид функции:

<тип возвращаемого значения> <имя функции> (<формальный параметр 1>, <формальный

параметр 2>, …)
{
тело функции
return <возвращаемое значение>;
}

Вызов функции:

<переменная>=<имя функции>(список фактических параметров);

Слайд 5

Примеры функций int IsSign (double a) { if(a>0) return 1; else

Примеры функций

int IsSign (double a)
{
if(a>0) return 1;
else if(a==0) return 0;
else return

-1;
}

int main()
{
int n,m;
cout<<"n=";
cin>>n;
m=IsSign(n);
switch(m)
{
case -1:cout<<"otritsat"< case 0:cout<<"NULL"< case 1:cout<<"polozhitel"< }
}

1. параметр-константа.

Слайд 6

void exgange (int &a,int &b) { int s=a; a=b; b=s; }

void exgange (int &a,int &b)
{
int s=a;
a=b;
b=s;
}
int main()
{
int n,m;
cout<<"n=";
cin>>n;
cout<<"m=";
cin>>m;
exgange(n,m);
cout<<"after exgange n="<

m="<}

2. параметр-переменная.

Слайд 7

Пример функций формирования и вывода массива #include #include using namespace std;

Пример функций формирования и вывода массива

#include
#include
using namespace std;
const

int n=6;
void input(int a[])
{
for(int i=0;i }
void output (int a[])
{
cout<<"Output matr>"< for(int i=0;i cout< cout< }
Слайд 8

Основная программа int main() { int f[n]; input(f); output(f); }

Основная программа

int main()
{
int f[n];
input(f);
output(f);
}

Слайд 9

Другой заголовок функции void input(int *a) { for(int i=0;i } void

Другой заголовок функции

void input(int *a)
{
for(int i=0;i }
void output (int *a)
{
cout<<"Output matr>"< for(int i=0;i

cout< cout< }
Слайд 10

Функции формирования и вывода матрицы const int n=6, m=4; void input(

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

const int n=6, m=4;
void input( int a[][m])
{
for(int

i=0;i for(int j=0;j a[i][j]=rand()/100-100;
}
void output ( int a[][m])
{
cout<<"Output matr>"< for(int i=0;i {
for(int j=0;j cout< cout< }
}
Слайд 11

Основная программа int main() { int f[n][m]; input(f); output(f); }

Основная программа

int main()
{
int f[n][m];
input(f);
output(f);
}

Слайд 12

Примеры программирования Даны две матрицы А и С. Сформировать одномерные массивы

Примеры программирования

Даны две матрицы А и С. Сформировать одномерные массивы P

и Q из количества положительных элементов каждого столбца соответствующих матриц.

#include
#include
using namespace std;
typedef int matr[5][5];
typedef int mas[5];
void input(matr a, int n, int m)
{
for(int i=0;i for(int j=0;j a[i][j]=rand()/100-100;
}

Слайд 13

void output ( matr a, int n, int m) { cout

void output ( matr a, int n, int m)
{
cout<<"Output matr>"< for(int i=0;i {
for(int

j=0;j cout< cout< }
}
void form(matr a,mas b,int n, int m)
{
int kol;
for(int j=0;j {
kol=0;
for(int i=0;i if(a[i][j]>0)kol++;
b[j]=kol;
}
}
Слайд 14

void output_mas(mas a, int m) { cout for(int i=0;i cout cout

void output_mas(mas a, int m)
{
cout<<"massiv"< for(int i=0;i cout< cout<}
int main()
{
matr f; mas k;
input(f,5,5);
output(f,5,5);
form(f,k,5,5);
output_mas(k,5);
}

Слайд 15

Даны массивы A{7}, B{5}, С{9} и D{9}. Вычислить #include #include #include

Даны массивы A{7}, B{5}, С{9} и D{9}. Вычислить

#include
#include
#include


using namespace std;
void input(double a[], int n)
{
for(int i=0;i}
void output ( double a[], int n)
{
cout<<"Output mas>"< for(int i=0;i cout<}
double mult(double b[],int n)
{
double p=1.0;
for(int i=0;i return p;
}
Слайд 16

int main() { double a[7],b[5],c[9],d[9]; input(a,7);input(b,5);input(c,9);input(d,9); output(a,7);output(b,5);output(c,9);output(d,9); double p; p=(mult(a,7)+log(mult(b,5)))/(sin(mult(c,9))*sqrt(mult(d,9))); cout }

int main()
{
double a[7],b[5],c[9],d[9];
input(a,7);input(b,5);input(c,9);input(d,9);
output(a,7);output(b,5);output(c,9);output(d,9);
double p;
p=(mult(a,7)+log(mult(b,5)))/(sin(mult(c,9))*sqrt(mult(d,9)));
cout<<"p="<}

Слайд 17

Для целочисленных матриц А и В размерностью 10*10 сформировать одномерные массивы

Для целочисленных матриц А и В размерностью 10*10 сформировать одномерные массивы

P и Q, состоящие из числа элементов каждой строки матрицы, кратных 5, и найти наибольшие из них.

#include
#include
using namespace std;
typedef int matr[10][10];
typedef int mas[10];
void input(matr a, int n, int m)
{
for(int i=0;i for(int j=0;j}
void output ( matr a, int n, int m)
{
for(int i=0;i {
for(int j=0;j cout< }
}

Слайд 18

void form(matr a,mas b,int n, int m) { for(int i=0;i {

void form(matr a,mas b,int n, int m)
{
for(int i=0;i {
b[i]=0;
for(int j=0;j if(a[i][j] % 5==0)b[i]++;
}
}
int

max(mas b,int n)
{
int maxx=b[0];
for(int i=0;i if(b[i]>maxx)maxx=b[i];
return maxx;
}
void output_mas(mas a, int m)
{
for(int i=0;i cout<}
Слайд 19

int main() { matr a,b; mas p,q; input(a,10,10); cout " output(a,10,10);

int main()
{
matr a,b;
mas p,q;
input(a,10,10);
cout<<"Output matr A>"< output(a,10,10);
input(b,10,10);
cout<<"Output matr B>"< output(b,10,10);
form(a,p,10,10);
form(b,q,10,10);
cout<<"massiv P"< output_mas(p,10);
cout<<"massiv Q"< output_mas(q,10);
cout<<"maxim P="<

maxim Q="<}