Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 4

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

26.05.2013, 10:42. Показов 2221. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть код для такой задачи:

Составить процедуру (или функцию), которая переставляет первые 2n элементов массива A (число n задается пользователем) по следующему правилу:
A[n+1], A[n+2], …, A[2n], A[1], A[2], …, A[n].
Следующие действия должны выполняться отдельными процедурами (и/или функциями): 1) заполнение массива случайными числами из заданного интервала; 2) вывод массива на экран; 3) заполнение массива нулями (инициализация); 4) сохранение массива в текстовый файл; 5) чтение массива из текстового файла; 6) удаление нескольких элементов из указанного места (со сдвигом); 7) добавление нескольких элементов в указанное место (со сдвигом). Процедуры (и/или функции) должны работать с массивами как с параметрами, но не как с глобальными переменными.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
type
  MyArr=array[1..10000]of integer;
var
  a:MyArr;
  max,k,i,i1,j,num,elem,pos,n, count,x,y,arg1:integer;
 
 
procedure setarray(var a:MyArr; const max,x,y:integer);
var
  i:integer;
begin
  randomize;
  for i:=1 to max do
    a[i]:=random(y-x+1)+x;
end;
 
procedure initarray(var a:MyArr; const max:integer);
var
  i:integer;
begin
  for i:=1 to max do a[i]:=0;
end;
 
procedure print(a:MyArr; max:integer);
var
  i:integer;
begin
  writeln('Массив:');
  write('[ ');
  for i:=1 to max do
    write(a[i],' ');
  writeln(']')
end;
 
procedure del(var a:MyArr; var max:integer; const k:integer);
var
  i:integer;
begin
  if k>max then
  begin
    writeln('Ошибка!');
    exit
  end;
  for i:=k to max-1 do
    a[i]:=a[i+1];
  dec(max);
end;
 
procedure addnew(var a:MyArr; var max:integer; const elem, pos:integer);
var
  i,temp:integer;
begin
  if pos>max then
  begin
    writeln('k>max!');
    exit
  end;
   
 For i:=max Downto pos Do
   a[i+1]:= a[i];
   a[pos]:= elem; 
   
  
end;
 
procedure replacement(var a:MyArr; const n,max:integer);
var
  i,temp:integer;
begin
   if (n>max) then
    writeln('Ошибка!')
  else
    begin
      for i:=1 to n do 
       begin
        temp := a[i];
        a[i] := a[n+i];
        a[n+i] := temp;
       end;
    end;
end;
 
procedure readfile(var a:myarr);
var
  input: text;
  i: integer;
begin
  assign(input, 'input.txt');
  reset(input);
  i:=1;
  i1:=0;
  while not (eoln(input)) do
  begin     
    read(input, a[i]);
    inc(i);
    inc(i1);
  end;
  close(input);
end;
 
procedure savetofile(var a:myarr);
var i:integer;
    output:text;
begin
  assign(output, 'output.txt');
  rewrite(output);
  
  for i:=1 to i1 do write(output, a[i],' ');
  close(output);
  
end;
 
begin
  initarray(a,max);
  
  //работа с файлом
  {readfile(a);
  print(a,i1);
  savetofile(a);
  }
  writeln('Введите количество элементов массива: ');
  readln(max);
  
  writeln('Задайте диапазон для randomize');
  readln(x,y);
  setarray(a,max,x,y);
  Print(a,max);
 
  writeln('Задайте n для перестановки');
  readln(n);
  if n>max then writeln('Ощибка!')
  else
   replacement(a, n, max);
  print(a,max);
  
  writeln('Введите количество удаляемых элементов: ');
  readln(num);
  writeln('Укажите позиции удаляемых элементов: ');
  for count := 0 to num-1 do begin
     read(i);
     del(a,max,i-count);
   end;
   
   print(a,max);
 
  writeln('Введите количество новых элементов: ');
  readln(num);
  writeln('Задайте значение и позицию');
  for count:=1 to num do begin
   readln(elem,pos);
   arg1:=max+count;
   addnew(a,arg1,elem,pos);
  end;
  
  print(a,max+num);
 
end.
1) Дополнить данную программу подпрограммой (процедурой или функцией) сортировки массива методом вставки (включения). (Подпрограмма должна работать с массивами как с параметрами.)
2) Модифицировать данный метод сортировки по следующему принципу:


Улучшение
Вкратце алгоритм метода вставки можно сформулировать так: для i=2..n каждый элемент массива A[i] помещается на свое место в упорядоченной ранее части массива A[1], …, A[i–1], при этом, если необходимо, происходит сдвиг элементов массива.
Модифицировать алгоритм метода вставки для повышения его эффективности можно, изменив способ поиска позиции вставки следующим образом.
На момент вставки элемента A[i] элементы массива A[1], …, A[i–1] уже отсортированы. Нужно выбрать средний элемент и сравнить его с A[i]. Если A[i] меньше этого элемента, то поиск места вставки следует продолжать в левой половине упорядоченной части массива, иначе – в правой.

Реализовать модифицированный (улучшенный) метод в отдельной подпрограмме и сравнить его с исходным по количеству присваиваний и сравнений.


Помогите, пожалуйста! срочно нужно!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.05.2013, 10:42
Ответы с готовыми решениями:

Вывод элементов массивов, сортировка массивов
вот ссылки program 1аЬ4; uses crt; const е=0.0010; d=l.Зе-7; var a, b, г, s, х, fa, fг, n, с : real; begin write('введите айв:...

Сортировка массивов.
Здравствуйте уважаемые программисты и обитатели форума. Помогите решить следующую задачу: Дана матрица. Упорядочить элементы...

Сортировка Массивов
1. Дан массив А. Выполнить сортировку элементов массива по убыванию. Вывести новый массив на печать. Найти сумму всех элементов массива. ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.05.2013, 10:42
Помогаю со студенческими работами здесь

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

Тема «Сортировка массивов»
В любом «длинном» числе > 20 знаков расположить цифры числа по возрастанию.

Сортировка одномерных массивов
Может кто предоставить решение ?!? Дан целочисленный массив из 30 элементов. Массив заполняется случайным образом значениями в...

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

Сортировка одномерных массивов
Дан целочисленный массив A(n) с элементами, сгенерированными случайными числами в диапазоне (-20, 20). Требуется: Отсортировать по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru