Вопрос задан 01.11.2023 в 05:57. Предмет Информатика. Спрашивает Широбокова Полина.

Написать программу: Упорядочьте элементы строк массива по убыванию модулей элементов методом

двоичного включения (pascal)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Попова Лера.

#include <iostream>

#include <algorithm>

#include <vector>

#include <random>

 

int main()

{

 srand(time(NULL));

 const int n = 20;

 std::vector<int> arr(n);

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

 {

     arr[i] = -20 + rand() % 40;

 }

 

 for(const int i : arr)

 {

     std::cout << i << " ";

 }

 std::cout << std::endl;

 

 std::sort(arr.begin(),arr.end(),[](int a,int b){ return abs(a) > abs(b); });

 for(const int i : arr)

 {

     std::cout << i << " ";

 }

 

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

```pascal program BinaryInsertionSort;

const MaxSize = 100; // Максимальный размер массива

type TStringArray = array[1..MaxSize] of string;

var StrArray: TStringArray; Size, i, j: integer; TempStr: string;

// Процедура для сортировки строк методом двоичного включения procedure BinaryInsertionSort(var A: TStringArray; n: integer); var i, j, left, right, middle: integer; begin for i := 2 to n do begin TempStr := A[i]; left := 1; right := i - 1; // Используем двоичный поиск для определения позиции вставки while left <= right do begin middle := (left + right) div 2; if Length(TempStr) >= Length(A[middle]) then left := middle + 1 else right := middle - 1; end; // Перемещаем элементы вправо, чтобы освободить место для вставки for j := i - 1 downto left do A[j + 1] := A[j]; // Вставляем элемент на правильную позицию A[left] := TempStr; end; end;

begin // Ввод размера массива write('Введите размер массива: '); readln(Size);

// Ввод строк массива writeln('Введите строки массива:'); for i := 1 to Size do begin readln(StrArray[i]); end;

// Вызываем процедуру сортировки BinaryInsertionSort(StrArray, Size);

// Вывод отсортированного массива writeln('Отсортированный массив:'); for i := 1 to Size do begin writeln(StrArray[i]); end; end. ```

Эта программа сначала запрашивает размер массива и затем вводит строки в массив. Затем она вызывает процедуру `BinaryInsertionSort`, которая сортирует строки в массиве методом двоичного включения. Результат сортировки выводится на экран.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос