Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Краткий справочник.rtf
Скачиваний:
3
Добавлен:
22.07.2019
Размер:
516.8 Кб
Скачать

Описание массивов

Описание массива имеет следующий вид

<тип элементов> <имя массива>[<кол-во элементов>];

Например,

float x[5],y[10];

int a[7];

Доступ к элементам массива осуществляется через имя массива и индекс элемента <имя массива>[<индекс элемента>], индексом элемента может быть константа или выражение целого типа в диапазоне от 0 до <кол-во элементов> - 1. Например, x[0], a[5], y[2*i-1].

Ввод одномерных массивов.

Одномерные массивы нельзя вводить и выводить с помощью одного оператора ввода – вывода, для этого необходимо организовать цикл.

Рассмотрим два сценария ввода одномерных массивов;

1) 1 сценарий – ввод одномерного массива в одной строке

#include <stdio.h>

#include <conio.h>

void main()

{float x[5];

int i;

clrscr();

printf(“введите через пробел 5 элементов массива x\n”);

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

scanf(“%f”,&x[i]);

getch();

}

2) 2 сценарий – ввод элементов по одному в строке с приглашением к вводу элемента;

#include <stdio.h>

#include <conio.h>

void main()

{ float x[5];

clrscr();

printf(“введите массив x]n”);

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

{ printf(“x[%d]=”,i);

scanf(“%f”,&x[i]);

}

getch();

}

Вывод одномерных массивов.

Рассмотрим два сценария вывода одномерных массивов;

1) 1 сценарий – вывод одномерного массива в одной строке

#include <stdio.h>

#include <conio.h>

void main()

{float x[5];

int i;

clrscr();

printf(“Массив x\n”);

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

printf(“%f ”,&x[i]);

printf(“\n”);

getch();

}

2) 2 сценарий – вывод элементов по одному в строке с приглашением к вводу элемента;

#include <stdio.h>

#include <conio.h>

void main()

{ float x[5];

int i;

clrscr();

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

printf(“x[%d]=%f\n”,i,x[i]);

getch();

}

Пример

Ввести с клавитуры 7 элементов массива a, элементы массива b вычислить по формуле b[i]=2*a[i]. Ввод и вывод организовать по 1-му сценарию.

#include <stdio.h>

#include <conio.h>

void main()

{float a[7],b[7];

int i;

clrscr();

printf(“введите через пробел 7 элементов массива a\n”);

for (i=0; i<7; i++)

scanf(“%f”,&a[i]);

for (i=0; i<7; i++)

b[i]=2*a[i];

printf(“массив b\n”);

for (i=0; i<7; i++)

printf(“%f “,b[i]);

printf(“\n”);

getch();

}

Способы задания констант.

При работе с массивами удобно количество элементов в массиве задавать с помощью констант. В языке c++ константы можно задавать двумя способами:

- с помощью директивы препроцессора define

# define <имя константы> <значение константы>

Например,

# define N 10

этой директивой определяется, что запись N (константа N) в программе всегда будет заменяться записью 10 (значение константы N), причем эту замену будет осуществлять препроцессор;

с помощью определения

const <тип> <имя константы>= <значение>;

Например,

const int M=5;

Здесь M является объектом программы, под него отводится оперативная память, которая всегда будет содержать значение 5. Попытка изменить это значение вызовет сообщение об ошибке.

Пример

Описать массивы d из 10 элементов и c из 5 элементов с помощью констант; Ввести с клавиатуры эти массивы и найти сумму всех элементов массива d и произведение всех элементов массива c

#include <stdio.h>

#include <conio.h>

#define N 10

const int M=5;

void main()

{int d[N],i;

float c[M], s=0, p=1;

clrscr();

for (i=0; i<N; i++)

{printf(“d[%d]=”,i);

scanf(“%d”,&d[i]);

}

for (i=0; i<M; i++)

{printf(“c[%d]=”,i);

scanf(“%f”,&c[i]);

}

for (i=0; i<N; i++)

s=s+d[i];

for (i=0; i<M; i++)

p=p*c[i];

printf(“s=%f p=%f\n”,s,p);

getch();

}

Инициализация одномерных массивов.

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

float x[5]={-0.7,123,6.89,-34,6.7};

в этом определении x[0] получит значение -0.7; x[1] – значение 123, x[2] – значение 6.89; x[3] – значение -34; x[4] – значение 6.7

Пример1.

Ввести массив. Найти отдельно среднее арифметическое положительных элементов и среднее арифметическое отрицательных элементов.

#include <stdio.h>

#include <conio.h>

void main()

{ float a[10], sp, so, srp,sro;

int i, kp,ko;

clrscr();

printf(“введите 10 элементов массива a\n”);

for (i=0; i<10; i++)

scanf(“%f”,&a[i]);

sp=0;

kp=0;

so=0;

ko=0;

for (i=0; i<10; i++)

if (a[i]>0)

{sp=sp+a[i];

kp=kp+1;

}

else if (a[i]<0)

{so=so+a[i];

ko=ko+1;

}

if (kp>0)

srp=sp/k;

esle srp=0;

if (ko>0)

sro=so/ko;

else sro=0;

printf(“srp=%f sro=%f\n”, srp, sro);

getch();

}

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

Двумерный массив (матрица) представляет прямоугольную таблицу элементов одного типа. Например, матрица A из 3 строк и 5 столбцов

-0.6 9.7 3 6 0

A = 8.7 -12 0 3.14 10

23 45 -18 19 0.13

Матрица характеризуется:

- именем (в данном случае - A);

- количеством строк (в данном случае - 3);

- количеством столбцов (в данном случае - 5);

- тип элементов (в данном случае - float).