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

Презентация:



Advertisements
Похожие презентации
Вставка элементов в одномерный массив. Вставка одного элемента (алгоритм) Пусть k - это номер элемента, после которого мы должны вставить элемент х. Тогда.
Advertisements

Вставка и удаление строк и столбцов. Вставка строки (для столбцов - аналогично) k Первые k строк оставить без изменения. k (k+1) Все строки после k-ой.
К. Поляков, Программирование на языке Паскаль Часть II Тема: Поиск максимального элемента массива.
1 Программирование на языке Паскаль Тема 2. Максимальный элемент массива.
Массивы Вариант 1 Program upr1; Var s,a:real; I: integer; Begin S:=0; For I:=1 to 10 do Begin Writeln (введите очередное число'); Readln(a); S: =s+a; End;
Доступ к элементам массива Изменение элементов массива.
Массивы Массив – именованный набор с фиксированным количеством однотипных данных Массив одномерный многомерный Общий вид элемента массива (двумерный массив.
Одномерные массивы. Одномерный массив - Это фиксированное количество элементов одного и того же типа, объединенных одним именем, где каждый элемент имеет.
Одномерные массивы Решение задач. Табличный способ организации данных Одномерные и двумерные массивы.
Задача. Сдвинуть одномерный массив на один элемент влево. Например, исходный массив Обработанный массив: Фрагмент программы:
Тема: « Вставка- удаление элементов массива » :18:06.
Program maxsimum; const n=10; var a:array [1..n] of integer; max,i:integer;begin ВВОД ЭЛЕМЕНТОВ МАССИВА; max:=a[1]; for i:=2 to n do if a[i]> max then.
Задачи с использованием одномерных массивов 1. Опишите алгоритм подсчёта среднего значения положительных элементов в целочисленном массиве из 30 элементов.
A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5] Двумерный массив можно представить.
Задачи с использованием одномерных массивов 1. Опишите алгоритм подсчёта среднего значения положительных элементов в целочисленном массиве из 30 элементов.
Шутилина Л.А., A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5]
Одномерные массивы. Определения Массив – группа элементов одного типа, объединенных под общим именем. Индекс – что-то (чаще всего номер), что позволяет.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Тема: «Понятие массива. Назначение. Тип. Размер. Размерность. Одномерный массив» :56:36.
Массивы Определения Массив – группа элементов одного типа, объединенных под общим именем. Индекс – что-то (чаще всего номер), что позволяет отличать элементы.
Транксрипт:

Алгоритм удаления из массива максимального элемента найти номер максимального элемента k; сдвинуть все элементы, начиная с k-го, на один элемент влево; последнему элементу присвоить значение 0; уменьшить количество элементов массива на единицу.

Пример работы алгоритма Пусть дан одномерный массив из целых чисел, состоящий из 10 элементов: 6, 3, 4, 7, 11, 2, 13, 8, 1, 5. После преобразования массив станет следующим: 6, 3, 4, 7, 11, 2, 8, 1, 5, 0. Примечание. При удалении элемента размерность массива не изменяется.

Программа с использованием этого алгоритма Program DeleteK; Const n=30; dd=51; Type MyArray = Array [1..n] of Integer; Var A : MyArray; k : Integer; Procedure InsertMas1(Var m : MyArray; n : integer);... Procedure InsertMas2(Var m : MyArray; n : integer);... Procedure PrintMas(m : MyArray; n : integer);...

Продолжение программы Function Maximum (m : MyArray; n:integer) : Integer; Var i, max, maxi : integer; Begin max:=-maxint; {начальным значением переменной будет наименьшее значение данного типа} for i := 1 to n do {просматриваем все элементы массива} if m[i] > max {если найден элемент больше, чем мы считаем максимальным} then begin max:=A[i]; {то запомним найденное значение} maxi:=i; {а также место, на котором он стоит в массиве} end; Maximum := maxi; {имени функции присвоим найденный результат} End;

Продолжение программы Procedure Delete(Var m : MyArray; Var n:integer; k1 : integer); Var i : integer; Begin for i := k1 to n-1 do m[i] := m[i+1]; m[n]:=0; Dec(n); End; Begin... k:=Maximum(A,m); Delete(A,m,k);... End.

Если максимальных элементов несколько? Лучше всего удалять элементы с конца массива, так как, иначе, нужно будет снова возвращаться к элементу с номером, который только что удаляли для предупреждения частного случая, когда подряд идут два максимальных элемента (при удалении первого на его месте будет стоять второй снова максимальный элемент. Это можно сделать при помощи цикла с параметром (downto). Кроме того, номер максимального элемента запоминать не нужно. При прохождении массива с конца, если элемент имеет максимальное значение, то удалим его, при этом значение счетчика k будем увеличивать на 1.

Решение задач Удалить первый отрицательный элемент, если таковой имеется. Удалить все отрицательные элементы. Удалить все элементы, большие данного числа А (А вводить с клавиатуры).