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

Изменение значений элементов массива с заданными свойствами

Необходимо изменить определенные значения в массиве. Так, если значение элемента в массиве отрицательное, то меняется знак элемента.

Скажем, если A[5]=-10, то после коррекции получим:A[5]=10. Кроме того, если значение элемента массива больше 100, то в элемент массива заносится ноль. В листинге 3.14 приведена необходимая программная разработка.

Листинг 3.14. Изменение значений элементов в массиве

#include <iostream>

using namespace std;

#include <conio.h>

#include <math.h>

#define N 15

#define NM 16

void main()

{

int A[N];

int J;

for (J=1;J<=N;J++)

A[J]=rand()%300 - 150;

for (J=1;J<=N;J++)

{

cout <<A[J]<<" ";

if ( A[J]< 0 )

A[J]=-A[J];

if ( A[J]> 100)

A[J]=0;

cout <<A[J]<<" ";

}

_getch();

}

Нахождение индексов элементов с заданными свойствами

Необходимо найти и вывести на экран номера элементов массива, значения которых кратны 4. В листинге 3.15 приведена необходимая программная разработка, а на рис. 3.10 представлена блок-схема алгоритма.

Листинг 3.15. Нахождение индексов элементов массива кратных 4

#include <iostream>

using namespace std;

#include <conio.h>

#include <math.h>

#define N 15

#define NM 16

void main()

{

int A[N];

int J;

for (J=1;J<=N;J++)

A[J]=rand()%100;

for (J=1;J<=N;J++)

{

if ((A[J] % 4) == 0)

cout <<"\n"<<J;

}

_getch();

}

Рис. 3.10. Блок-схема к программе листинга 3.15

Удаление из массива определенного элемента

Допустим, имеется массив из N элементов. Необходимо произвести удаление элемента с определенным индексом (вводимым с клавиатуры). Один из вариантов программы показан в листинге 3.16, а на рис. 3.11 приведена блок-схема данного алгоритма.

Листинг 3.16. Удаление элемента из массива

#include <iostream>

using namespace std;

#include <conio.h>

#include <math.h>

#define N 10

#define NM 11

void main()

{

int A[NM];

int J,K;

for (J=1;J<=N;J++)

A[J]=rand()%100;

cout <<"\nВведите индекс удаляемого элемента";

cin>>K;

for (J=K;J<N;J++)

A[J]=A[J+1];

for (J=K;J<N;J++)

A[J]=A[J+1];

for (J=1;J<N;J++)

cout <<A[J]<<" ";

_getch();

}

Рис. 3.11. Блок-схема к программе листинга 3.16

Циклическое перемещение элементов массива

Допустим, необходимо произвести циклическое перемещение элементов по такой схеме: второй элемент перемещается на место первого, третий на место второго и т. д. Исходный первый элемент переходит в последний элемент массива.

Один из вариантов программы показан в листинге 3.17, а на рис. 3.12 представлена блок-схема алгоритма.

Листинг 3.17. Циклическое перемещение

#include <iostream>

using namespace std;

#include <conio.h>

#include <math.h>

#define N 10

#define NM 11

void main()

{

int A[NM];

int J,B;

for (J=1;J<=N;J++)

A[J]=rand()%100;

B=A[1];

for (J=1;J<N;J++)

A[J]=A[J+1];

A[N]=B;

_getch();

}

Рис. 3.12. Блок-схема к программе листинга 3.17

Заполнение массива случайными числами

Требуется организовать заполнение массива случайными числами. При этом в массиве не должно оказаться одинаковых элементов.

Один из вариантов программы показан в листинге 3.18, а на рис. 3.13 приведена блок-схема алгоритма заполнения массива.

Рис. 3.13. Блок-схема к программе листинга 3.18

Листинг 3.18. Заполнение массива случайными числами

#include <iostream>

using namespace std;

#include <conio.h>

#include <math.h>

#define N 10

#define NM 11

void main()

{

int A[NM];

int J,I,Flag;

for (J=1;J<=N;J++)

A[J]=rand()%100;

J=1;

while (J<=N)

{

A[J]=rand()%(N+5);

Flag=0;

for (I=1;I<=(J-1);I++)

{

if ( A[J] == A[I] )

{

Flag=1;

break;

}

}

if ( Flag == 0)

J=J+1;

}

for (J=1;J<N;J++)

cout<<A[J]<<" ";

_getch();

}

Соседние файлы в папке файлы по информатике