Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Некоторые типы простых задач при работе с массивами




 

1. Анализ всего или части массива, то есть найти какую-нибудь его характеристику.

2. Поиск в массиве, т. е. определить, есть ли элемент с некоторым условием и (или) найти индекс и (или) значение первого, последнего такого элемента, всех таких элементов.

3. Построение массива по некоторому правилу, используя при этом индексы, одно или несколько чисел и (или) один или несколько массивов.

4. Преобразование массива: изменить их значения, переставить местами некоторые элементы, удалить один или несколько элементов массива, вставить элементы массива и т. п.

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

6. Вывод массива в специальном виде.

Одна и та же задача может состоять из нескольких частей, каждая из которых относится к разным типам. Например, в следующей задаче - поиск наибольшего и наименьшего элементов массива относятся к первому типу, а их перестановка — к четвёртому.

1. Ввести массив с клавиатуры. Найти его наибольший и наименьший элементы и переставить их, т. е. на место каждого наибольшего поместить наименьший элемент, на место каждого наименьшего поместить наибольший элемент:

void main()

{ clrscr(); const n=5; int a[10], i, max1, min1, Nmin, Nmax;

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

{ cout<<"a["<<i<<"] "; cin>>a[i];

}

min1=a[0]; max1=a[0];

Nmin=0; Nmax=0;

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

if (min1>a[i])

{ min1=a[i]; Nmin=i;

}

else if (max1<a[i])

{ max1=a[i]; Nmax=i;

}

cout<<"Max "<<max1<<" number "<<Nmax<<endl;

cout<<"Min "<<min1<<" number "<<Nmin<<endl;

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

if (max1==a[i]) a[i]=min1;

else if (min1==a[i]) a[i]=max1;

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

cout<<"a["<<i<<"]= "<<a[i]<<endl;

getch();

}

2. Ввести массив с клавиатуры. Найти сумму всех чисел до первого нуля и его номер. Если нуля нет, вывести сумму всех чисел массива.

void main()

{ const n=5; int a[n], i;

for(i=0; i<n; i++) cin>>a[i];

int n2= –1,s=0; i=0;

while (i<n)

{

if (a[i]==0) { n2=i+1; break;}

s+=a[i++];

}

if (n2 == –1) cout<<"Нет нуля, сумма всех элементов = "<<s;

else { cout<<"Сумма элементов до нуля = "<<s<<”Номер нулевого элемента =”<<n2;

}

cout<<”\n”;

getch();

}

3. Сформировать целочисленный массив с помощью генератора случайных чисел. Построить массив положительных и массив отрицательных чисел и вывести их.

void main()

{ const int n = 10; int a[n], b[n], d[n];

clrscr(); cout<<"Array: "; randomize();

for (int i=0; i<n; i++)

{ a[i]=random(100)-50; printf ("%5d",a[i]);;

}

int nd=0, nb=0;

for (int i=0; i<n; i++)

if (a[i]<0) d[nd++] = a[i];

else if (a[i]>0) b[nb++] = a[i];

cout<<"\n Положит. массив: ";

for (int i=0; i<nb; i++)

printf ("%5d",b[i]);

cout<<"\nОтрицат. массив: ";

for (int i=0; i<nd; i++)

printf ("%5d",d[i]);

getch();

}

Матрицы (двухмерные массивы)

 

Массивы называются двухмерными, если элементы массива расположены в виде таблицы. При этом каждый элемент массива имеет два индекса, первый показывает номер строки, а второй - номер столбца, на пересечении которых он расположен.

Формат описания двухмерного массива:

<тип> <имя_массива> [размер1][размер2];

Здесь

<тип>— тип элементов массива (int, float, char, структуры),

<имя_массива>записывается по правилам идентификаторов;

[размер1][размер2] - размерность двухмерного массива, т.е. количество строк и столбцов в массиве, указывается в виде целочисленной константы или константного выражения. Величина - (размер1*размер2) определяет количество ячеек оперативной памяти, зарезервированной для массива.

Например:

а) float b[3][5];

б) const n=3, m=5; int A[n][m],

где n — количество строк (первая, левая размерность), m — количество столбцов или количество элементов в строке (вторая, правая размерность). Матрица располагается в оперативной памяти и занимает непрерывный участок, объём которой равен

n*m*sizeof(int),

где int — тип элементов матрицы.





Поделиться с друзьями:


Дата добавления: 2016-10-06; Мы поможем в написании ваших работ!; просмотров: 332 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наглость – это ругаться с преподавателем по поводу четверки, хотя перед экзаменом уверен, что не знаешь даже на два. © Неизвестно
==> читать все изречения...

2684 - | 2249 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.