Задачи на массивы программа

Слияние упорядоченных и бинарный поиск в упорядоченном массиве

№11. Слияние двух упорядоченных в один упорядоченный

// a,b упорядочены по возрастанию function Merge(a,b: array of real; na,nb: integer): array of real; begin Assert((0 na) and (na a.Length)); Assert((0 nb) and (nb b.Length)); a[na] := real.MaxValue; b[nb] := real.MaxValue; var c := new real[na + nb]; var ia := 0; var ib := 0; for var ic := 0 to na + nb — 1 do if a[ia]b[ib] then begin c[ic] := a[ia]; ia += 1; end else begin c[ic] := b[ib]; ib += 1; end; Result := c; end;

№12.

Поиск в упорядоченном массиве

function BinarySearch(a: array of integer; x: integer): integer; begin var k: integer; var i := 0; var j := a.Length-1; repeat k := (i+j) div 2; if x>a[k] then i := k + 1 else j := k — 1; until (a[k]=x) or (i>j); if a[k]=x then Result := k else Result := -1; end;

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

№13. Сортировка выбором

procedure SortByChoice(a: array of integer); begin for var i := 0 to a.Length — 2 do begin var min := a[i]; var imin := i; for var j := i + 1 to a.Length — 1 do if a[j] min then begin min := a[j]; imin := j; end; a[imin] := a[i]; a[i] := min; end; end;

№14.

Задача на массивы. Программирование на Java. Алгоритмическая качалка с Валерой Петровым

Читайте также:
Как включить запись экрана на компьютере без программ

Пузырьковая сортировка

Способ №1

procedure BubbleSort(a: array of integer); begin var n := a.Length; for var i := 0 to n — 2 do for var j := n — 1 downto i + 1 do if a[j] a[j — 1] then Swap(a[j], a[j — 1]); end;

Способ №2(оптимизация)

procedure BubbleSort2(a: array of integer); begin var i := a.Length — 1; var q: boolean; repeat q := true; for var j := 0 to i — 1 do if a[j + 1] a[j] then begin Swap(a[j + 1], a[j]); q := false; end; i -= 1; until q; end;

№15. Сортировка вставками

procedure SortByInsert(a: array of integer); begin for var i := 1 to a.Length — 1 do begin var x := a[i]; var j := i — 1; while (j >= 0) and (x a[j]) do begin a[j + 1] := a[j]; j -= 1; end; a[j + 1] := x; end; end;

Использование процедурных типов в задачах на массивы

Пусть сделаны следующие описания:

type IPredicate = function(x: integer): boolean; // Примеры предикатов function Even(x: integer): boolean; begin result := not odd(x); end; function IsPositive(x: integer): boolean; begin Result := x > 0; end;

№16.

Поиск по условию

function FindPred(a: array of integer; pred: IPredicate): integer; begin var n := a.Length; var i := 0; while (i n) and not pred(a[i]) do i += 1; if i = n then Result := -1 else Result := i; end;

№17. Количество по условию

function CountPredT>(a: array of T; pred: T -> boolean): integer; begin Result := 0; for var i := 0 to a.Length — 1 do if pred(a[i]) then Result += 1; end;

№18.

Условный минимум
procedure MinElemPred(a: array of integer; pred: IPredicate; var min, imin: integer); begin min := Integer.MaxValue; imin := -1; for var i := 0 to a.length — 1 do if pred(a[i]) and (a[i] min) then begin min := a[i]; imin := i; end; end;

Читайте также:
Расширение ods какая программа

№19. Удаление по условию

procedure DeleteAll(a: array of integer; var n: integer; pred: IPredicate); begin Assert((0 n) and (n a.Length)); var j := 0; for var i := 0 to n — 1 do if not pred(a[i]) then begin a[j] := a[i]; j += 1; end; n := j; end;

Решение задач на массивы в языке c++ | Практика на c++ урок 1.

Источник: pascalabc.net

Решение задач на массивы. Язык Паскаль

Массив представляет собой сложный тип данных, включающий список значений, принадлежащих одному типу. В Pascal можно задавать как одномерные, так и двумерные массивы. Здесь представлены задачи различных уровней сложности на одномерные массивы.

  • Сумма и произведение элементов одномерного массива
  • Сумма положительных элементов массива
  • Сумма элементов частей массива
  • Первый положительный элемент массива
  • Поиск максимального элемента в массиве
  • Максимальный по модулю элемент массива
  • Найти два максимальных элемента массива
  • Заменить элементы массива на противоположные
  • Разделить элементы массива на максимальный
  • Найти разность между максимальным и минимальным элементами массива
  • Поменять местами минимальный и максимальный элементы массива
  • Найти количество положительных элементов массива
  • Количества отрицательных и положительных элементов в массиве
  • Вывести элементы массива, которые больше среднего арифметического
  • Элементы массива, которые больше предыдущего
  • Определить индексы элементов массива, значение которых лежит в указанном пределе
  • Самая длинная последовательность, состоящая из одинаковых элементов
  • Есть ли в массиве одинаковые элементы
  • Вставка элемента в массив
  • Удаление элементов одномерного массива
  • Удалить повторяющиеся элементы из массива
  • Слияние двух упорядоченных массивов
  • Сортировка выбором
  • Сортировка методом пузырька
  • Вывести в порядке возрастания цифры, из которых состоит число
  • Номер дня с начала года

Источник: pas1.ru

Задачи на массивы

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

Читайте также:
Программа для тех кто не спит

Задачи средней сложности
8 сентября 2021 0 18.8к. admin

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

Задачи средней сложности
8 сентября 2021 1 4.8к. admin

Каждое элемент-число массива следует разбить на цифры. Сделать это можно с помощью последовательного нахождения остатка от деления числа на 10 нацело

Одномерные массивы
8 сентября 2021 0 5.8к. admin

Если стоит задача найти минимальный (или максимальный) элемент по модулю, то значит при поиске нужно сравнивать не сами элементы массива, а их абсолютные

Задачи средней сложности
8 сентября 2021 1 4.7к. admin

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

Одномерные массивы
8 сентября 2021 0 5.8к. admin

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

Одномерные массивы
8 сентября 2021 0 4.6к. admin

Задачу можно разбить на три подзадачи: Удаление элементов массива, принадлежащих заданному интервалу. Сдвиг оставшихся элементов. Заполнение «

Одномерные массивы
8 сентября 2021 0 1.5к. admin

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

Задачи средней сложности
8 сентября 2021 0 3.1к. admin

Случайные числа в диапазоне от -5 до 5 разложить по двум массивам: в одни помещать только положительные, во второй — только отрицательные.

Одномерные массивы
8 сентября 2021 0 2.8к. admin

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

Источник: gospodaretsva.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru