Академический Документы
Профессиональный Документы
Культура Документы
Общие замечания
1) Массив – это структура данных, представляющая собой именованную
конечную последовательность однотипных элементов.
2) Массивы можно определять либо с помощью операторов описания, либо
динамически с помощью операций выделения памяти.
3) Оператор описания массива задается следующим образом:
<тип элементов> <имя массива>[размер];
4) Тип элементов – произвольный тип данных языка C++, имя массива –
стандартный идентификатор, размер – константа, или константное
выражение.
5) Элементы массива нумеруются с нуля, потому номер последнего
элемента массива всегда на единицу меньше его размерности.
6) Доступ к отдельному элементу осуществляется по имени массива и
индексу соответствующего элемента, который указывается в квадратных
скобках.
7) Автоматический контроль выхода индекса за границы массива не
выполняется. Эта задача возлагается на разработчика.
8) Ввод, вывод и обработка массива осуществляется поэлементно с
помощью инструкций цикла с параметром или цикла с предусловием.
9) Если до начала работы программы количество элементов в массиве не
определено, следует использовать динамические массивы. Память под
них выделяется с помощью операции new или функции malloc во время
выполнения программы. В этом случае массив описывается следующим
образом:
указатель = new <тип элементов>[размер];
В качестве размера массива может выступать любое целое
положительное значение.
Или
<тип элементов> указатель = (тип указателя) malloc (размер массива в
байтах);
Размер массива в байтах чаще всего определяется так:
<количество элементов массива> * sizeof(тип элементов)
10) Память, зарезервированная под динамический массив с помощью new [],
должна освобождаться оператором delete [], а память, выделенная
функцией mallос – посредством функции free:
delete [ ] <указатель на массив>;
free (указатель на массив);
#include "stdafx.h"
#include "clocale"
#include "math.h"
#include "iostream"
#include "iomanip"
#include "time.h"
// начало задания 1
for (j = 0; j < n; j++)
{
if (mas[j]>0)
sum = sum + mas[j];
}
cout << "Сумма положительных элементов:" << sum << endl;
//конец задания 1
// начало задания 2
int min = abs(mas[0]);
int max = abs(mas[0]);
int nmin = 0;
int nmax = 0;
for (j = 1; j < n; j++){
if (abs(mas[j]) < min)
{
min = abs(mas[j]); //поиск минимума по модулю
nmin = j; //номер минимального элемента
}
if (abs(mas[j]) > max)
{
max = abs(mas[j]); //поиск максимума по модулю
nmax = j; //номер максимального элемента
}
}
// нумерация элементов от меньшего числа к большему
if (nmin > nmax){
int t = nmin;
nmin = nmax;
nmax = t;
}
int s = 1;
for (j = nmin + 1; j < nmax; j++) //произведение
s = s*mas[j];
cout << "Произведение: " << s << endl;
//конец задания 2
// начало задания3
int f = -1;
for (i = n - 1; i >= 0; i--)
if (mas[i] < 0){
f = i;
break;
}
if ( f != -1)
cout << "Номер последнего отрицательного элемента: " << f << endl;
else cout << "в массиве нет отрицательных элементов" << endl;
//конец задания3
// начало задания4
for (i = n - 1; i > 0; i--)
for (j = 0; j < i; j++)
if (mas[j] < 0 && mas[j + 1] >= 0)
{
float t = mas[j];
mas[j] = mas[j + 1];
mas[j + 1] = t;
}
cout <<"Преобразованный массив:" << endl;
for (j = 0; j < n; j++)
{
cout << setw(6) << mas[j];
}
cout << endl;
// конец задания 4
delete []mas;
_gettch();
return 0;
}