Типовые задачи обработки массивов 10 класс конспект урока

Обновлено: 23.06.2024

Конспект урока разработан для учащихся 10 классов изучающих язык программирования Pascal. В конспекте подробно на примерах объясняется, как можно добавить и удалить элементы в одномерном массиве.

ВложениеРазмер
urok_po_massivam_na_udalenie_i_dobavlenie_elementov.doc 80 КБ

Предварительный просмотр:

Раздел программы: Одномерные масивы

Учитель информатики: Иванова И.А.

- содействовать развитию логического мышления, умений самостоятельно работать;

- организовать деятельность учащихся по восприятию и осмыслению новых понятий, необходимых для решения задач данного типа: размерность массива увеличивается при добавлении элементов в массив и уменьшается при его удалении, способствовать выработки привычки к постоянной занятости каким-либо делом;

- содействовать воспитанию интереса к предмету.

Тип урока: изучение новых знаний.

Х О Д У Р О К А

I. Организационный момент. 2 мин.

II. Актуализация опорных знаний. 5 мин.

1. Что такое массив?

Ответ: Массивом называется упорядоченная последовательность величин одного типа, обозначаемая одним именем

2. Что такое размерность массива?

Ответ: Количество элементов в массиве называется его размерностью.

3. Какими величинами характеризуется каждый элемент массива?

Ответ: Каждый элемент массива имеет:

на рис.1 массив А состоит из 9 элементов (т.е. размерность массива равна 9).

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] А[9]

Рассмотрите 1-ый элемент массива и дайте ему характеристику:

4. Где нужно разместить описание массива в программе?

Ответ: Описание массива в Паскале задается в разделе переменных var и

включает в себя:

2. Ключевое слово A R R A Y (т.е. массив).

3. Диапазон изменения индексов, определяемый граничной парой:

где 1, 1 и 5 - наименьшее возможное значение индекса

40, N и 20 - наибольшее возможное значение индекса

4. Тип элементов массива.

var имя1, имя2: array [граничная пара] of тип элементов;

Выбрать правильное описание массива:

а) Var А: array[1..78] of integer;

б) var B1: array[1..5] ;

в) Var C= array[1..13] of integer;

5. Как происходит обращение к элементам массива?

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

Как обратиться к 5 элементу массива с именем Е?

  1. Как напечатать элементы массива "в столбик"? "В строчку"?

Ответ: а) в столбик - б) в строчку -

For I:=1 to 5 do For I:=1 to 5 do

Writeln ('B[', I, ']=', B[I]); Write (B[I]:6);

III. Изучение нового материала 14 мин.

1. Изучение нового материала рассмотрим на решении задачи №1и №5:

Добавление элемента в массив:

Чтобы вставить в массив новый элемент на место К, нужно прежде всего предусмотреть для него место в массиве. Поэтому объявление массива будет выглядеть так: : array [1..n+1] of ;

Обязательно ввести к – ый порядковый номер. В теле программы все элементы, начиная с к-ого и до N, следует передвинуть на 1 место к концу массива. После этого можно на к-ое место поставить значение, заданное по условию задачи:

For i := n downto к do

Var I,N,K:byte; A:array[1..100] of integer;

Writeln(‘Введи размерность массива’);

For i:=1 to N do begin

Writeln(‘Введи номер к-го элемента’);

For i:=N downto K do

For i:=1 to N+1 do begin

Удаление элементов из массива.

5) Задать случайным образом N элементов числового массива – числа 0 до 10. Удалить из него10-ый элемент.

Чтобы удалить из массива элемент № 10, нужно все элементы, начиная с (10+1)-ого, передвинуть на 1 место к началу массива. Тогда алгоритм удаления элемента запишется так:

For i := 10 to n-1 do

Var I,N:byte; A:array[1..100] of integer;

Writeln(‘Введи размерность массива’);

For i:=1 to N do begin

For i:=10 to N-1 do

For i:=1 to N-1 do begin

Самостоятельная работа в группах:

Задать случайным образом N элементов числового массива

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

Var I,N,x:byte; A:array[1..100] of integer;

Writeln(‘Введи размерность массива’);

For i:=1 to N do begin

For i:=N downto 1 do begin

Writeln(‘порядковый номер первого положительного элемента =’,x);

For i:=N downto x do

For i:=1 to N+1 do begin

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

4) Задать случайным образом N элементов числового массива, вставить перед последним элементом >5, элемент равный среднему арифметическому элементов массива.

При решении данной задачи, обратить внимание учащихся на то, что сначала необходимо подсчитать сумму элементов массива, после чего найти среднее арифметическое элементов массива, а потом определить номер последнего элемента > 5, после которого вставляется среднее арифметическое элементов массива.

6) Ввести N элементов массива при помощи клавиатуры, учитывая, что минимальный элемент в массиве задан один раз. Удалить из массива минимальный элемент.

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

IV. Заключение. 2 мин.

Подведение итогов урока.

Выставление оценок учащимся.

Повторение пройденного материала

1. Что такое массив?

2. Что такое размерность массива?

3. Какими величинами характеризуется каждый элемент массива?

на рис.1 массив А состоит из 9 элементов (т.е. размерность массива равна 9).

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] А[9]

Рассмотрите 1-ый элемент массива и дайте ему характеристику:

4. Где нужно разместить описание массива в программе?

Выбрать правильное описание массива:

а) Var А: array[1..78] of integer;

б) var B1: array[1..5];

в) Var C= array[1..13] of integer;

5. Как происходит обращение к элементам массива?

Как обратиться к 5 элементу массива с именем Е?

  1. Как напечатать элементы массива "в столбик"? "В строчку"?

5) Задать случайным образом N элементов числового массива – числа 0 до 10. Удалить из него10-ый элемент.

6) Ввести N элементов массива при помощи клавиатуры, учитывая, что минимальный элемент в массиве задан один раз. Удалить из массива минимальный элемент.

По теме: методические разработки, презентации и конспекты

Решение задач ЕГЭ на одномерные массивы

Данная разработка может быть использована пр подготовке учащихся к ЕГЭ и объяснении задания С2.


Одномерные массивы. Поиск элемента массива.

Расматриваются алгоритм линейного поиска и бинарного поиска в отсортированном массиве.


Одномерные массивы. Вставка, удаление элемента.

Расматриваются алгоритмы вставки и удаления элемента, в том числе и бинарная вставка в отсортированный массив.

Работа с элементами одномерного массива

Цель урока:формировать и развивать предметные и ключевые компетенции;расширять представление о зоне применения одномерных массивов;повышать культуру написания программ;прививать навыки структурировани.


Решение задач как один из важнейших элементов обучения физике

В статье освещается вопрос о важности и необходимости обучения решению физических задач. Практика решения задач, по нашему мнению, способствует формированию УУД, таким образом, приближая учащихся к ст.


Одномерные массивы на языке Паскаль. Вычисление суммы элементов одномерного массива на языке Паскаль

Данная разработка может быть использована в виде опорного материала для работы на уроке по изучению темы указанной ниже. Учебник: Информатика. Учебник для 9 класса. Босова Л.Л., Босова А.Ю.

  • Для учеников 1-11 классов и дошкольников
  • Бесплатные сертификаты учителям и участникам

Выберите документ из архива для просмотра:

Выбранный для просмотра документ Типовые задачи обработки массивов.pptx

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

Описание презентации по отдельным слайдам:

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

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

var x: array[1..20] of integer; i: integer; begin randomize; for i:=1 to 20 d.

var x: array[1..20] of integer; i: integer; begin randomize; for i:=1 to 20 do x[i]:=random(100); for i:=1 to 20 do write(x[i]:4) end. Пример 1. Заполнить массив равномерно распределенными целыми случайными числами в диапазоне от 0 до 100.

Задача 2. Определить, содержит ли массив A[1..6] число Х, введенное с клавиат.

Задача 2. Определить, содержит ли массив A[1..6] число Х, введенное с клавиатуры. Найти их количество.


Задача 3. Заполнить матрицу указанного вида и вывести ее на экран. a11 a12 a1.

Задача 3. Заполнить матрицу указанного вида и вывести ее на экран. a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 a41 a42 a43 a44 j

Задача 4. Выбор максимального элемента Пусть дан некоторый массив целых чисел.

Задача 4. Выбор максимального элемента Пусть дан некоторый массив целых чисел (-3, 0, 6, -7, 2, -10, 1). Найти максимальный элемент массива и указать его индекс (порядковый номер). ОТВЕТ:max = 6 imax = 3

АЛГОРИТМ: Делается предположение, что первый элемент массива является максим.

АЛГОРИТМ: Делается предположение, что первый элемент массива является максимальным. Затем остальные элементы последовательно сравниваются с ним. Если во время очередного сравнения обнаруживается, что проверяемый элемент больше принятого за максимальный, то этот элемент принимается за максимальный.

const a: array[1..7] of integer = (-3,0,6,-7,2,-10,1); var i, max, imax : int.

const a: array[1..7] of integer = (-3,0,6,-7,2,-10,1); var i, max, imax : integer; begin max:=a[1]; imax :=1; for i:=2 to 7 do if a[i]> max then begin max:=a[i]; imax := i end; writeln ('max=', max); writeln ('индекс=', imax) end.

Какие изменения нужно внести в алгоритм, чтобы найти минимальный элемент? mi.

Какие изменения нужно внести в алгоритм, чтобы найти минимальный элемент? min:=a[1]; if a[i] a[j] then begin c:=a[i]; a[i]:=a[j]; a[j]:=c end; for i:=1 to n do writeln (a[i]) end.

§ 26; № 7, 8 (стр. 180). Задание на дом:

§ 26; № 7, 8 (стр. 180). Задание на дом:

Выбранный для просмотра документ № 28.docx

КОНСПЕКТ УРОКА

Тема школьного курса: Алгоритмизация и программирование

Тема урока: Типовые задачи обработки массивов

Цель: познакомить учащихся с двумерными массивами, способами их задания и обработки; развитие умений и навыков решения задач с использованием двумерного массива

Задачи:

образовательные: повторить знания о двумерных массивах, способе описания массивов, характеристики двумерного массива; рассмотреть действия, которые можно выполнить над матрицами; познакомить с типовыми алгоритмами обработки матриц на языке Pascal; создать условия для формирования умения решать алгоритмы с двумерными массивами;

развивающие: создать условия для развития умений работать за ограниченный промежуток времени, развития навыков самостоятельной работы, развития навыков работы с конспектом.

воспитательные: содействовать созданию на уроке психологического комфорта для работы, воспитанию собранности, ответственного отношения к своему труду, повышения мотивации к учебной деятельности.

Дидактические материалы:

- презентация "Типовые задачи обработки массивов";

- задания из теории.

Технические средства обучения:

Тип урока: комбинированный

СТРУКТУРА И ХОД УРОКА

Деятельность учителя

Деятельность ученика

1. Настрой учащихся на урок.

2. Отметить отсутствующих.

Настраиваются на урок, записывают в тетради дату

1. Что называется двумерным массивом? ( Двумерным массивом называется совокупность данных, каждое значение которых, зависит от его положения в строке и в столбце ).

2. Как описывается каждый элемент двумерного массива? ( a[i,j],

а – имя массива

i - номер строки

j – номер столбца ).

3. Какая матрица называется квадратной? ( Если в матрице количество строк и столбцов совпадают, то она называется квадратной, в противном случае прямоугольной ).

4. Какая диагональ называется главной? ( Главная диагональ квадратной матрицы проходит из левого верхнего угла в правый нижний ).

5. Каким свойством обладают элементы главной диагонали? ( У элементов главной диагонали раны индексы ).

6. Какая диагональ называется побочной? ( Побочная диагональ квадратной матрицы проходит из правого верхнего угла в левый нижний ).

7. Каким свойством обладают элементы побочной диагонали? ( У элементов побочной диагонали сумма индексов на 1 больше размера матрицы индексы ).

8. Назовите способы описания матрицы. ( В разделе var и разделе const ).

9. Назовите способы ввода матрицы в память ( С клавиатуры и заполнение случайными числами ).

Учитель устно задает вопросы

Дети отвечают на поставленные вопросы

Мотивация изучения темы

Сегодня продолжим знакомство с двумерными массивами (матрицами), разберем типовые задачи обработки массивов

Нажмите, чтобы узнать подробности

Урок информатики по теме

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

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

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

воспитывающие: содействовать созданию на уроке психологического комфорта для работы, воспитанию собранности, ответственного отношения к своему труду, повышения мотивации к учебной деятельности информационную культуру, развивать мотивации личности к познанию. Задачи урока:

Ученики должны знать:

определение массива; виды массивов;

 способы описания двумерных массивов;

 способы обращения к элементам двумерных массивов;

 способы формирования двумерных массивов;

свойства матриц относительно главной и побочной диагоналей;

 основные алгоритмы обработки массивов;

уметь: определять тип массива;

 определять тип элементов массивов;

 составлять и отлаживать программы;

 уметь проводить логический анализ программ, их тестирование.

Методы обучения: поисковый, наглядный, самостоятельная практическая работа.

Формы работы: фронтальная, индивидуальная, групповая

Оборудование: персональные компьютеры, объединенные в локальную сеть, мультимедийный проектор.

Программное обеспечение: система программирования Turbo Pascal, Microsoft Office.

Раздаточный материал: карточки с заданиями, оценочные листы.

Проверка домашнего задания (3 мин);

Актуализация знаний (10 мин)

Разбор типичных ошибок, задание на поиск ошибок (10 мин);

Решение индивидуальных заданий (15 мин);

Итоги урока, домашнее задание (5 мин).

Дорогие друзья, нам с вами предстоит напряженная интеллектуальная работа. Давайте настроимся и активизируем наше внимание на теме урока.

2.Проверка домашнего задания.

Сначала проверим домашнее задание. Вам к сегодняшнему уроку было задано составить программу для решения задачи. Все ли понятно? Вопросов нет?

3.Актуализация знаний.

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

Что такое двумерный массив? Как иначе называют его? (матрица)

Какие виды матриц вы знаете? (прямоугольная, квадратная, единичная, нулевая)

Какие способы описания массива вы знаете? (в разделе переменных, в разделе типов, в разделе констант)(var ИмяМассива: array [НижняяГраница.. ВерхняяГраница] of Тип Элементов;или как типизированную константу const x: array[1..5] of integer=(l,3,5,7,9);)

Какие способы формирования (заполнения) массивов вы знаете?
( с клавиатуры, присваиванием заданных значений, датчиком случайных чисел, помощью вычисления элементов)

Как обратиться к элементу массива? (имя массив [индекс элемента])

Что такое размерность массива? (количество строк и столбцов)

Какими свойствами обладает квадратная матрица?

Какие типовые задачи мы с вами решали по обработке массивов?

Нахождение суммы (произведения) элементов и нахождение суммы (произведения) элементов при заданном условии (S:=S+a[i,j])

Нахождение количества элементов и нахождение количества элементов при заданном условии (k:=k+1)

Поиск максимального (минимального) элемента и его номер

4.Разбор типичных ошибок

Теперь по блок-схеме части решения задачи попробуйте восстановить условие этой задачи. (Приложение1) В первую очередь обратите внимание на выдачу результата, затем на формулы. Так какую задачу решали? Правильно, это была задача на вычисление среднего арифметического элементов массива.


Сегодня вам предстоит выполнять самостоятельную практическую работу. И чтобы вы ненароком не подарили мне целый “букет” ошибок, разберем типичные.

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

Итак, на экране и в раздаточных листах вы видите “уникальную” программу (Приложение 3), соответствующую блок-схеме решения задачи вычисления среднего арифметического положительных элементов массива, которая содержит все мыслимые и немыслимые ошибки ваших предшественников. Вам предстоит сказать мне, сколько здесь ошибок.

Для этого разобьёмся на 2 группы, каждый из вас вытаскивает слово (INTEGER или REAL).

По какому признаку вам необходимо разделиться? (по типу данных)

Учащиеся разбиваются на группы и совместно осуществляют поиск ошибок в предложенной программе. По истечении 10 минут они должны указать общее количество ошибок и отнести каждую из них к какому-либо типу.

Отвечает представитель группы, комментируя ошибки с указанием номера строки и типа ошибки.

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

Глоссарий по теме: массив, элемент массива, размерность массива, индекс элемента массива, сортировка.

Основная литература по теме урока:

Л. Л. Босова, А. Ю. Босова. Информатика. Базовый уровень: учебник для 11 класса. — М.: БИНОМ. Лаборатория знаний, 2017

Дополнительная литература по теме урока:

- И. Г. Семакин, Т. Ю. Шеина, Л. В. Шестакова. Информатика и ИКТ. Профильный уровень: учебник для 11 класса. — М.: БИНОМ. Лаборатория знаний, 2012

- К. Ю. Поляков, Е. А. Еремин. Информатика. Углубленный уровень: учебник для 10 класса. В 2 ч. Ч. 2 — М.: БИНОМ. Лаборатория знаний, 2013

- Андреева Е. В. Программирование — это так просто, программирование — это так сложно. Современный учебник программирования. — М.: МЦНМО, 2015

Теоретический материал для самостоятельного изучения

Рассмотрим следующую задачу: ввести с клавиатуры 20 действительных чисел и вычислить их сумму, при этом каждое из чисел сохранить в памяти для последующей обработки.

Для решения этой достаточно простой задачи мы будем вынуждены ввести 20 имен переменных, что, естественно, очень неудобно. Но ведь чисел может быть гораздо больше, чем 20!

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

Массив — это поименованная совокупность однотипных элементов, упорядоченных по индексам, определяющим положение элемента в массиве.

Элемент массива — отдельная переменная, входящая в массив.

Индекс элемента массива — номер элемента в этом массиве.

Размерность массива — количество элементов, которое содержит массив.

Массивы бывают одномерными и многомерными. Мы будем рассматривать только одномерные массивы. Их условно можно представлять в виде таблицы, которая состоит из множества ячеек, расположенных в одну строку или в один столбец.

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

В языке Паскаль массивы описываются в блоке описания переменных следующим образом:

var : array [ ] of

- — описание индексации (нумерации) элементов массива. В качестве типа индекса можно использовать любые порядковые типы;

- — тип величин, непосредственно составляющих массив.

Приведем несколько примеров описаний:

  1. varday: array [1..365] of integer; — массив, состоящий из 365 целых чисел, которые пронумерованы от 1 до 365;
  2. vartem: array [0..11] of real; — массив, состоящий из 12 вещественных, пронумерованных от 0 до 11;
  3. var ocenka: array [–2..2] of char; — массив, состоящий из 5 символьных переменных с номерами от -2 до 2:
  4. const n=10; var slovo: array [1..n] of string; — n строковых величин, пронумерованных от 1 до n;

Для того, чтобы обратиться к элементу массива, нужно записать имя массива и в квадратных скобках индекс нужного элемента, например, day[100].

Рассмотрим основные приемы работы с массивами.

Заполнение одномерного массива значениями

Задать элементам массива значения мы можем:

— вводя значения с клавиатуры;

— случайным образом из некоторого диапазона;

Но какой бы способ мы ни выбрали, нам обязательно нужно организовать цикл.

Для начала договоримся, что мы имеем дело с массивом из 10 натуральных чисел (хотя тип элементов в данном случае значения не имеет).

Вывод элементов массива на экран

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

Воспользуемся вторым и третьим способами, рассмотренными выше:


Теперь перейдем к задачам обработки массивов.

Вычисление суммы элементов массива

Алгоритм решения практически полностью совпадает с алгоритмом нахождения суммы некоторого количества чисел, который мы уже рассматривали на третьем уроке в этой теме.


Следующая группа задач очень часто встречается нам в реальной жизни. Это задача поиска в массиве. Например, поиск нужного слова в словаре, поиск времени отправления нужного поезда в расписании и т. д.

В программировании поиск — одна из наиболее часто встречающихся задач вычислительного характера.

В алгоритмах поиска существуют два возможных варианта окончания их работы: поиск может оказаться удачным — заданный элемент найден в массиве и определено его месторасположение, либо поиск может оказаться неудачным – необходимого элемента в данном объеме информации нет. Кроме того, искомый элемент может встретиться в массиве неоднократно.

Рассмотрим несколько типовых задач, которые уже знакомы вам из курса основной школы.

Поиск в массиве элемента, удовлетворяющего некоторому условию

Например, требуется найти в массиве элемент, значение которого равно значению переменной p, или сообщить, что такого элемента в массиве нет.

Мы построим алгоритм, идея которого следующая:


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

Поиск максимального (минимального) элемента массива

Подумаем, какие операции нужно выполнить, если требуется найти максимальный элемент. Естественно, как и в предыдущей задаче, операцию сравнения. Но с чем нам сравнивать очередной элемент массива?

Введем дополнительную переменную max, которой присвоим значение, равное значению элемента массива a[1]. Теперь будем сравнивать все элементы, начиная со 2-го, с max, и если найдем больший элемент, то присвоим его значение переменной max. Конечное значение этой переменной и будет значением наибольшего элемента массива.


Поиск максимального (минимального) среди всех элементов массива, удовлетворяющих некоторому условию

Допустим, нужно найти наибольшее среди всех четных чисел, входящих в массив произвольных натуральных чисел.

Прием, которым мы воспользовались в задаче 5, здесь может привести к ошибке. Например, на первом месте в массиве будет стоять НЕЧЕТНОЕ число, которое окажется больше всех четных. Здесь переменной max лучше присвоить начальное значение, заведомо меньшее всех элементов массива. Например, если наш массив составлен из натуральных чисел, то присвоить max значение -2. Если после окончания программы значение max останется таким же, это будет означать, что в массиве нет четных чисел. Если же они будут, max изменит значение.

Сдвиг элементов массива

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

Таким образом при удалении элемента из массива мы можем получить, например, такую ситуацию. Допустим, имеется массив:


Удалим из него элемент с индексом i=4, т. е. a[1]=a[1], a[2]=a[2], a[3]=a[3], a[4]=a[5], a[5]=a[6], a[6]=a[7]. А вот для последнего элемента a[7] новое значение взять неоткуда. Он сохранит свое значение. Получим:


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

Программа удаления элемента из массива на языке Паскаль может выглядеть следующим образом:


Сложнее обстоит дело со вставкой элемента внутрь массива. Как мы сказали, при вставке все элементы, расположенные справа от места вставки, сдвигаются вправо. Последнему же элементу сдвигаться некуда, и он пропадет. Чтобы этого не произошло, нужно увеличить размерность массива на 1. Но учесть это надо при описании массива. Второй важный момент заключается в том, что сдвиг значений мы будем производить справа налево до заявленной позиции вставки:


Реверс массива

Реверс массива — это перестановка его элементов в обратном порядке: первый элемент становится последним, а последний — первым.


Из примера видно, что местами меняются 1-й элемент с N-м, второй — с (N–1)-м и т. д. Замечаем, что сумма индексов элементов, участвующих в обмене, равна N+1, поэтому элемент с номером i должен меняться местами с (N+1–i)-м элементом.

Теперь разберемся с организацией цикла. Если мы организуем цикл по всем элементам, то получим:


Все вернулось в исходное состояние, потому что реверс выполнился дважды. Чтобы этого не произошло, нужно остановить процесс обмена на середине массива, т.е. на элементе с индексом (N div 2).


Сортировка массива

Сортировка — один из наиболее распространенных процессов обработки данных.

Под сортировкой массива понимают расстановку элементов массива в заданном порядке.

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

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

Существует много различных алгоритмов сортировки. Мы рассмотрим некоторые из них на примере сортировки массива целых чисел в порядке неубывания (a[i] 2 , где n — число элементов в массиве.

Читайте также: