-
Указатели. Инициализация. Операции с указателями.
-
Указатель -являются объектом(переменной), хранящей адресс другого объекта.
-
Для обращению к объекту, используется оператор *, называемый разыменованием.
-
Пример:
-
{int *c; int d;
-
d=45;
-
c=&d;
-
cout<<”адрес :”<<c<<endl;
-
cout<<”значение по адресу С:”<<*c<<endl;
-
cout<<”значение d:”<<d<<endl;
-
Указатели на массивы.
-
Int v[]={1,2,3,4}; int *p1=v;
-
Int *p2=&v[0]; //указатель на первый элемент
-
Int *p3=&v[4]; //указатель на элемент следующий за последним
-
#include “stdaf.h”
-
#include <iostream>
-
Using namespace std;
-
Double summa (double array [], int n)
-
{
-
Double s=0;
-
For(int i=0;i<n;i++)
-
S+-array [i];
-
Return 0;
-
}
-
Int main(void);
-
{
-
Double v[10]={1,2,3,4,5,6};
-
Cout<<summa(v,10)<<endl;// весь массив
-
Cout<<summa(v+5,5)<< endl; //последние 5 эл
-
Оператор new- выделяет память, для размещения новых данных.
-
A=new float[n];
-
Оператор delete []; //очищает память матрицы.
-
Статический:
-
{double mas [100], k=0;
-
Int n;
-
Cout<<”vvedite koll ellementov”;
-
Cin>>n;
-
Cout<<”vvedite massiv”;
-
For(int i=0;i<n;i++)
-
Cin>>mas[i];
-
-
For(int i=0;i<n;i++)
-
If(mas[i]<0)
-
K=k+mas[i];
-
Cout<<”cymma отрицательных эл”<<k<<endl;
-
-
Динамический:
-
-
{
-
setlocale(LC_ALL, "");
-
-
double *mas, k = 0;
-
int n;
-
-
cout << "Введите количество элементов массива: ";
-
cin >> n;
-
mas = new double[n];
-
cout << "Введите массив: ";
-
for (int i = 0; i < n; i++)
-
cin >> mas[i];
-
-
for (int i = 0; i < n; i++)
-
if (mas[i] < 0)
-
k = k + mas[i];
-
-
cout << "Сумма отрицательных элементов: " << k << endl;
-
-
-
-
-
-
-
-
-
-
1 способ
-
-
{
-
setlocale(LC_ALL, "");
-
int i, n;
-
float *a, s;
-
cout << "n:";
-
cin >> n;
-
a = new float[n];
-
cout << "vvedite massiv A:";
-
for (int i = 0; i < n; i++)
-
cin >> a[i];
-
for (s = 0, i = 0; i < n; i++)
-
s += a[i];
-
cout << "s:" << s;
-
delete[]a;
-
system("pause");
-
return 0;
-
}
-
2 способ
-
int n, m;
-
cout << "Введите количество строк матрицы: ";
-
cin >> m;
-
cout << "Введите количество столбцов матрицы: ";
-
cin >> n;
-
//Создание массива
-
int **mas = new int *[n];
-
for (int i = 0; i < n; i++)
-
mas[i] = new int[m];
-
//Ввод массива
-
for (int i = 0; i < n; i++){
-
cout << "Введите " << i + 1 << " строку массива: ";
-
for (int j = 0; j < m; j++)
-
cin >> mas[i][j];
-
int n, m;
-
cout << "Введите количество строк матрицы: ";
-
cin >> m;
-
cout << "Введите количество столбцов матрицы: ";
-
cin >> n;
-
//Создание массива
-
int **mas = new int *[n];
-
for (int i = 0; i < n; i++)
-
mas[i] = new int[m];
-
//Ввод массива
-
for (int i = 0; i < n; i++){
-
cout << "Введите " << i + 1 << " строку массива: ";
-
for (int j = 0; j < m; j++)
-
cin >> mas[i][j];
-
}
-
cout << endl;
-
//Вывод массива
-
for (int i = 0; i < n; i++){
-
cout << "Строка массива " << i + 1 << ": ";
-
for (int j = 0; j < m; j++)
-
cout << fixed << setw(3) << mas[i][j] << " ";
-
cout << endl;
-
}
-
cout << endl;
-
//Задание №1
-
int k, sym = 0;
-
//Считает сколько строк без 0
-
for (int i = 0; i < n; i++){
-
k = 0;
-
for (int j = 0; j < m; j++)
-
if (mas[i][j] != 0)
-
k++;
-
if (k == n)
-
sym++;
-
}
-
cout << "Количество строк без 0:" << sym << endl;
-
-
void arrayshow(int**A1, int N1, int M1);
-
int _tmain(int argc, _TCHAR* argv[])
-
{
-
setlocale(LC_ALL, "");
-
cout << endl;
-
for (int i1 = 0; i1 < N1;i1++)
-
for (int j1 = 0; j1 < M1; j1++){
-
if (!(j1%M1))
-
cout << endl;
-
cout << A1[i1][j1] << "\t";
-
}
-
return 0;
-
}