Разделы презентаций


Массивы - операции с массивами (размер изменяемый)

Содержание

Понятие массиваКозьминых Н.М.Массив - структура данных, позволяющая хранить под одним именем совокупность данных любого, но только одного какого-то типаС массивом связаны следующие его свойства: имя;тип;размерность; размер.

Слайды и текст этой презентации

Слайд 1Лекция 14. Массивы - операции с массивами (размер изменяемый)
дисциплина «Программирование»
Козьминых Н.М.

Лекция 14. Массивы - операции с массивами (размер изменяемый)дисциплина «Программирование»Козьминых Н.М.

Слайд 2Понятие массива
Козьминых Н.М.
Массив - структура данных, позволяющая хранить под одним

именем совокупность данных любого, но только одного какого-то типа
С массивом

связаны следующие его свойства:
имя;
тип;
размерность;
размер.
Понятие массиваКозьминых Н.М.Массив - структура данных, позволяющая хранить под одним именем совокупность данных любого, но только одного

Слайд 3Виды массивов
Козьминых Н.М.
Массивы в C#:
одномерные массивы;
многомерные массивы;
массивы массивов (ступенчатые, зубчатые

массивы).

Виды массивовКозьминых Н.М.Массивы в C#:одномерные массивы;многомерные массивы;массивы массивов (ступенчатые, зубчатые массивы).

Слайд 4Одномерные массивы Объявление. Инициализация
Козьминых Н.М.
Объявление:
[ ] ;
int[ ] a, b, c;


Объявление с инициализацией:
Явная инициализация:
double[ ] x = {5.5, 6.6, 7.7};


Инициализация с вызовом конструктора массива (ноль для арифметики, пустая строка для строковых массивов):
int[ ] d = new int[5];



Одномерные массивы Объявление. ИнициализацияКозьминых Н.М.Объявление:[ ] ;int[ ] a, b, c; Объявление с инициализацией:Явная инициализация:double[ ] x

Слайд 5Одномерные массивы Инициализация
Козьминых Н.М.
Инициализация массива:
с использованием ключевого слова new:
int[] myArr =

new int[] {10,20,30,40,50};

без использования ключевого слова new:
string[] info = {

"Фамилия", "Имя", "Отчество" };

с использованием new и указанием размера:
char[] symbol = new char[4] { 'X','Y','Z','M' };
Одномерные массивы ИнициализацияКозьминых Н.М.Инициализация массива:с использованием ключевого слова new:int[] myArr = new int[] {10,20,30,40,50};без использования ключевого слова

Слайд 6Этапы решения
Козьминых Н.М.
Сокращенная форма:
ввод исходных данных;
решение задачи;
вывод результата на экран.
Развернутая

форма для задач с массивами:
объявление массива;
выделение памяти для необходимого количества

элементов массива;
определение значений элементов массива;
вывод исходного массива на экран;
выполнение алгоритма;
вывод результата на экран.
Этапы решенияКозьминых Н.М.Сокращенная форма:ввод исходных данных;решение задачи;вывод результата на экран.Развернутая форма для задач с массивами:объявление массива;выделение памяти

Слайд 73. Удаление элементов массива
Козьминых Н.М.
3.1 Удалить последний нулевой элемент массива
Алгоритм:
А)

в цикле for просматриваем все элементы массива с конца (т.к.

нужно найти последний элемент) и если текущий элемент равен нулю, то прерываем выполнение цикла
Б) в цикле for начиная с текущего элемента массива (i = i или ничего не указываем) и до предпоследнего (< n-1) присваиваем значению текущего элемента массива значение следующего элемента
В) изменить размер массива
3. Удаление элементов массиваКозьминых Н.М.3.1 Удалить последний нулевой элемент массиваАлгоритм:А) в цикле for просматриваем все элементы массива

Слайд 83. Удаление элементов массива
Козьминых Н.М.
3.1 Удалить последний нулевой элемент массива
void

task() {
int i;
for (i = A.Length -1; i

>= 0; i--)
if (A[i] == 0)
break;
if (i == -1)
return;
for (; i < A.Length; i++)
A[i] = A[i+1];
Array.Resize(ref A, A.Length - 1);
}

3. Удаление элементов массиваКозьминых Н.М.3.1 Удалить последний нулевой элемент массиваvoid task() { int i; for (i =

Слайд 93. Удаление элементов массива
Козьминых Н.М.
3.2 Удалить минимальный положительный элемент массива

3. Удаление элементов массиваКозьминых Н.М.3.2 Удалить минимальный положительный элемент массива

Слайд 103. Удаление элементов массива
Козьминых Н.М.
3.2 Удалить минимальный положительный элемент массива
Алгоритм:
А)

находим минимальный положительный элемент
1) переменной признаку

k присваиваем -1: нет элемента
2) в цикле for начиная с начала;
если текущий элемент меньше нуля, переходим к следующей итерации цикла (т.к. нам нужно только положительные);
если положительных элементов не было (k==-1) или текущий элемент меньше минимального из рассмотренных, то в переменную индекса записываем индекс текущего минимального элемента
Б) в цикле for начиная с найденного элемента массива (i = k) и до предпоследнего (< n-1) присваиваем значению текущего элемента массива значение следующего элемента
В) изменить размер массива
3. Удаление элементов массиваКозьминых Н.М.3.2 Удалить минимальный положительный элемент массиваАлгоритм:А) находим минимальный положительный элемент

Слайд 113. Удаление элементов массива
Козьминых Н.М.
3.2 Удалить минимальный положительный элемент массива

void

task() {
int i, k;
k = -1;
for (i

= 0; i < A.Length ; i++) {
if (A[i] < 0) continue;
if (k == -1 || A[i] }
if (k == -1)
return;
for (i = k; i < A.Length - 1; i++)
A[i] = A[i+1];
Array.Resize(ref A, A.Length - 1);
}

Слайд 123. Удаление элементов массива
Козьминых Н.М.
3.3 Удалить минимальный положительный элемент массива

3. Удаление элементов массиваКозьминых Н.М.3.3 Удалить минимальный положительный элемент массива

Слайд 133. Удаление элементов массива
Козьминых Н.М.
3.3 Удалить минимальный положительный элемент массива
Алгоритм:
А)

найти первый положительный элемент
Б) найти минимальный положительный, начиная со следующего

после найденного положительного элемента
В) удалить найденный элемент
Г) изменить размер массива

3. Удаление элементов массиваКозьминых Н.М.3.3 Удалить минимальный положительный элемент массиваАлгоритм:А) найти первый положительный элементБ) найти минимальный положительный,

Слайд 143. Удаление элементов массива
Козьминых Н.М.
3.3 Удалить минимальный положительный элемент массива

private

void task(ref int[] b){
int

imin = -1;
for(int i = 0; i < b.Length; i++)
if (b[i] > 0){
imin = i;
break;
}
if (imin == -1)
return;
for(int i = imin + 1; i < b.Length; i++)
if (b[i] > 0 && b[i] < b[imin]){
imin = i;
}
for(int i = imin; i < b.Length - 1; i++)
b[i] = b[i + 1];
Array.Resize(ref b, b.Length - 1);
}
3. Удаление элементов массиваКозьминых Н.М.3.3 Удалить минимальный положительный элемент массиваprivate void task(ref int[] b){

Слайд 153. Удаление элементов массива
Козьминых Н.М.
3.4 Удалить все положительные элементы массива

3. Удаление элементов массиваКозьминых Н.М.3.4 Удалить все положительные элементы массива

Слайд 163. Удаление элементов массива
Козьминых Н.М.
3.4 Удалить все положительные элементы массива
Алгоритм:
А)

внешний цикл - найти положительный элемент
Б) удалить найденный элемент
Г) изменить

размер массива
3. Удаление элементов массиваКозьминых Н.М.3.4 Удалить все положительные элементы массиваАлгоритм:А) внешний цикл - найти положительный элементБ) удалить

Слайд 173. Удаление элементов массива
Козьминых Н.М.
3.4 Удалить все положительные элементы массива

private void task(ref int[] b) {
int k = 0;

for(int i = 0; i < b.Length - k; i++)
if (b[i] > 0) {
for (int j = i; j < b.Length - 1 - k; j++)
b[j] = b[j + 1];
k++;
i--;
}
Array.Resize(ref b, b.Length - k);
}
3. Удаление элементов массиваКозьминых Н.М.3.4 Удалить все положительные элементы массива private void task(ref int[] b) {	 int

Слайд 183. Удаление элементов массива
Козьминых Н.М.
3.4 Удалить все положительные элементы массива

(вариант №2)

private void task (ref int[] b){
for(int i

= 0; i < b.Length; i++)
if (b[i] > 0) {
for (int j = i; j < b.Length - 1; j++)
b[j] = b[j + 1];
Array.Resize(ref b, b.Length - 1);
i--;
}
}
3. Удаление элементов массиваКозьминых Н.М.3.4 Удалить все положительные элементы массива (вариант №2) private void task (ref int[]

Слайд 194. Вставка элементов массива
Козьминых Н.М.
4.1. Вставить заданное число перед

последним положительным элементом (z = 6)

4. Вставка элементов массива Козьминых Н.М.4.1. Вставить заданное число перед последним положительным элементом (z = 6)

Слайд 204. Вставка элементов массива
Козьминых Н.М.
4.1. Вставить заданное число перед

последним положительным элементом
Алгоритм:
А) вводим значение заданного числа, которое будем вставлять


Б) в цикле for просматриваем все элементы массива с конца (т.к. нужно найти последний элемент) и если текущий элемент больше нуля (положительный), то прерываем выполнение цикла
В) если элемент не найден, преждевременно выходим из цикла
Г) изменяем размер массива
Д) в цикле for, начиная с позиции после последней (j = n-1) и до позиции последнего положительного элемента, не включая его (> i), с шагом -1 присваиваем значению текущего элемента массива значение предыдущего элемента
Е) вставляем в позицию перед последним положительным элементом заданное число (Ai = z)
4. Вставка элементов массива Козьминых Н.М.4.1. Вставить заданное число перед последним положительным элементомАлгоритм:А) вводим значение заданного числа,

Слайд 214. Вставка элементов массива
Козьминых Н.М.
4.1. Вставить заданное число перед

последним положительным элементом

private void task (ref int[] b)

{
int i, j, z;
z = Convert.ToInt32(txtZ.Text);
for (i = b.Length- 1; i >= 0; i--)
if (b[i] > 0)
break;
if (i == -1)
return;
Array.Resize(ref b, b.Length + 1);

for (j = b.Length - 1; j > i; j--)
b[j] = b[j-1];
b[i] = z;
}
4. Вставка элементов массива Козьминых Н.М.4.1. Вставить заданное число перед последним положительным элементом private void task (ref

Слайд 224. Вставка элементов массива
Козьминых Н.М.
4.2. Вставить значение минимального элемента

перед и после максимального элемента

4. Вставка элементов массива Козьминых Н.М.4.2. Вставить значение минимального элемента перед и после максимального элемента

Слайд 234. Вставка элементов массива
Козьминых Н.М.
4.2. Вставить значение минимального элемента

перед и после максимального элемента
Алгоритм:
А) присваиваем переменной, в которой будем

хранить минимальное значение массива, значение первого элемента массива (min = A0)
Б) присваиваем переменной, в которой будем хранить индекс максимального элемента массива, индекс первого элемента (imax = 0)
В) в цикле for просматриваем все элементы массива с начала
1) если значение текущего элемента массива больше значения элемента с индексом imax, то запоминаем текущий индекс как индекс максимального элемента
2) если значение текущего элемента массива меньше переменной, в которой храниться минимальное значение массива (min), то присваиваем этой переменной значение текущего элемента
Г) изменяем размер массива
Д) в цикле for сдвигаем элементы массива на две позиции вправо
Е) в позицию после максимально элемента записываем значение максимального элемента массива
Ж) в позицию максимально элемента и через позицию записываем значение минимального элемента массива
4. Вставка элементов массива Козьминых Н.М.4.2. Вставить значение минимального элемента перед и после максимального элементаАлгоритм:А) присваиваем переменной,

Слайд 244. Вставка элементов массива
Козьминых Н.М.
4.2. Вставить значение минимального элемента

перед и после максимального элемента

private void task(ref int[] b)

{
int i, min, imax;
min = b[0];
imax = 0;
for (i = 0; i < b.Length; i++) {
if (b[i] > b[imax])
imax = i;
if (b[i] < min)
min = b[i];
}
Array.Resize(ref b, b.Length + 2);
for (i = b.Length - 1; i >= imax + 2; i--)
b[i] = b[i - 2];
b[imax + 1] = b[imax];
b[imax] = min;
b[imax + 2] = min;
}
4. Вставка элементов массива Козьминых Н.М.4.2. Вставить значение минимального элемента перед и после максимального элементаprivate void task(ref

Слайд 255. Изменение местонахождения элемента с помощью сдвига
Козьминых Н.М.
5.1 Найти первый

элемент, находящийся в заданных пределах, возвести его в квадрат и

поставить перед последним элементом
5. Изменение местонахождения элемента с помощью сдвигаКозьминых Н.М.5.1 Найти первый элемент, находящийся в заданных пределах, возвести его

Слайд 265. Изменение местонахождения элемента с помощью сдвига
Козьминых Н.М.
5.2 Переставить в

конец массива элементы, кратные заданному числу

5. Изменение местонахождения элемента с помощью сдвигаКозьминых Н.М.5.2 Переставить в конец массива элементы, кратные заданному числу

Слайд 27Вопросы…

Спасибо за внимание
Козьминых Н.М.

Вопросы…Спасибо за вниманиеКозьминых Н.М.

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика