В упорядоченный по возрастанию числовой массив из 15 элементов вставить числа -2 и 5, не...

0 голосов
42 просмотров
В упорядоченный по
возрастанию числовой массив из 15 элементов вставить числа -2 и 5, не нарушая
упорядоченности.






Информатика (32 баллов) | 42 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Const n = 15;
type ArrayOfInteger = array [1..n+2] of integer;

procedure ArrayOutput(A: ArrayOfInteger; a_length: integer);
var i: integer;
begin
  for i := 1 to a_length do
    write(A[i]:4, ' ');
  writeln;
end;

procedure ArraySort(var A: ArrayOfInteger; a_length: integer);
var i, j, temp: integer;
begin
  for i := 1 to a_length-1 do
    for j := i+1 to a_length do
      if A[i]>A[j] then begin
        temp:=A[i];
        A[i]:=A[j];
        A[j]:=temp;
      end;
end;

var
  mass:ArrayOfInteger;
  i:integer;
begin
  writeln('Программа упорядочивает массив по возрастанию ');
  writeln('и вставляет числа -2 и 5, не нарушая упорядоченности.');
{Создаём массив}
  randomize;
  for i := 1 to n do
    mass[i] := random(100)-50;

  writeln('Начальный массив: ');
  ArrayOutput(mass, n);

  ArraySort(mass, n);
  writeln('Отсортированный массив: ');
  ArrayOutput(mass, n);
{Добавляем к массиву числа -2 и 5 и сортируем полученный массив}
  mass[n+1]:=-2;
  mass[n+2]:=5;
  ArraySort(mass, n+2);
{Выводим итоговый массив}
  writeln('Упорядоченный массив: ');
  ArrayOutput(mass, n+2);
end.

(53.1k баллов)
0

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

0

А на счет работы - так наоборот, программист делал меньше работы, значит время сэкономленно. А вообще вариант сортировки должен подбираться автоматически в зависимости от того как смешаны элементы. Но в паскале этот функционал не реализован вообще

0

Archery, это круто, мне понравилось :)

0 голосов

Program Yxl;
uses crt;
const n=15;
var
  mass:array [1..n+2] of integer;
  i,j,temp:integer;
begin
  writeln('*** Alphaeus is thinking... ***');
  writeln('*** OK ***');
  writeln(); writeln();
  writeln('Программа упорядочивает массив по возрастанию ');
  writeln('и вставляет числа -2 и 5, не нарушая упорядоченности.');
{Создаём массив}
  randomize;
  writeln('Начальный массив: ');
  for i:=1 to n do
    begin
      mass[i]:=random(100)-50;
      write(mass[i]:4,' ');
    end;
{Сортируем массив}
  for i:=1 to n-1 do 
    for j:=i+1 to n do
      if mass[i]>mass[j] then 
        begin
            temp:=mass[i]; 
            mass[i]:=mass[j]; 
            mass[j]:=temp;
        end;
  writeln;
  writeln('Отсортированный массив: ');
  for i:=1 to n do
    begin
      write(mass[i]:4,' ');
    end;
{Добавляем к массиву числа -2 и 5 и сортируем полученный массив}
  mass[n+1]:=-2; mass[n+2]:=5;
  for i:=1 to n+1 do 
    for j:=i+1 to n+2 do
      if mass[i]>mass[j] then 
        begin
          temp:=mass[i]; 
          mass[i]:=mass[j]; 
          mass[j]:=temp;
        end;
{Выводим итоговый массив}
  writeln('Упорядоченный массив: ');
  for i:=1 to n+2 do 
    write(mass[i]:4,' ');
end.

(52.6k баллов)
0

а не легче ли сортировку инкапсулировать в процедуру?

0

Alviko, а если массив окажется неупорядоченным? Чтоб избежать ошибок, пришлось бы включать в программу проверки на упорядоченность... Проще, по-моему, посортировать массив и всё