Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Turbo Pascal Шифр Цезаря. Изменить программу. program Caesar; uses crt; function code(toCode:string):string; var x,y,n:integer; begin writeln('shag coda'); readln(n); for x:=1 to length(toCode) do begin y:=(Ord(toCode)+n); toCode:=Chr(y); https://www.cyberforum.ru/ turbo-pascal/ thread757298.html Предметная область "Библиотечное обслуживание" Turbo Pascal
помогите пожалуйста, написать вывод по контрольной работе на тему предметная область "Библиотечное обслуживание" очень срочно нужно
Turbo Pascal Ошибка в коде https://www.cyberforum.ru/ turbo-pascal/ thread757251.html
Помогите найти в чем ошибка program Moment; uses crt; var k,n,i,j:integer; L,PK,P0:real; P,M:array of real; S:array of real; begin clrscr; write('Введите длину балки'); readln(L);
Turbo Pascal Составить блок-схему к программе https://www.cyberforum.ru/ turbo-pascal/ thread757245.html
type int=integer; var result,k:longint; i:int; input:string; begin readln(input); k:=1; for i:=length(input) downto 1 do begin
Вывести на экран номера строк матрицы, в которых имеются положительные элементы Turbo Pascal
помогите пожалуйста, я начинающий программист и что то пока не очень выходит. мне надо решить две задачи: 1. дан двумерный массив А . вывести на экран номера строк, в которых имеются положительные элементы. И если не затруднит то можно с алгоритмом решения заранее спасибо!
Turbo Pascal Найти один корень уравнения методами деления отрезка пополам и итераций https://www.cyberforum.ru/ turbo-pascal/ thread757219.html
Помогите пожалуйста, буду очень благодарен! Нужно в паскале решить x^4-2x-4=0 (x>0) (^-степень)
Turbo Pascal Распечатать в массиве H сначала положительные а затем отрицательные элементы https://www.cyberforum.ru/ turbo-pascal/ thread757205.html
Дан массив Z(10) распечатать в массиве H сначала положительные а затем отрицательные элементы массива.
Turbo Pascal Вычеслить сумму положительных элементов массива
В массиве A(8) есть положительные и отрицательные элементы. Вычеслить сумму положительных элементов
Turbo Pascal Процедуры: распечатать те уравнения, которые имеют действительные корни Напишите программу для решения задачи, используя подпрограммы - процедуры. Даны 3 квадратных ур. ax^2+bx+c, bx^2 + cx +a, cx^2+ax+b. распечатать те из них которые имеют действ. корни https://www.cyberforum.ru/ turbo-pascal/ thread757202.html Turbo Pascal Вычисление площади Вычислите значения функций F(x) на отрезке с шагом h=(b-a)/n. Даны числа X,Y,Z,F -длины сторон четырехугольника. Вычислить его площать, если угол между сторонами длиной X и Y - прямой. https://www.cyberforum.ru/ turbo-pascal/ thread757198.html
Вычислить значения интеграла на заданном отрезке [a,b] Turbo Pascal
Вычислить на ЭВМ значения интеграла на заданном отрезке . F(x)=sinx-cosx отрезок(0;2) разбиение 150 метод лев. прямоугольник
Turbo Pascal Вычислите значения функции F(x) на отрезке [a,b] с шагом h=(b-a)/n https://www.cyberforum.ru/ turbo-pascal/ thread757193.html
Вычислите значения функций F(x) на отрезке с шагом h=(b-a)/n F(x)=2cosx-1 a=P/4 b=P/2 n=15
233 / 223 / 146
Регистрация: 19.03.2012
Сообщений: 369
10.01.2013, 17:44 0

Сортировка строк методом прямых вставок с барьером - Turbo Pascal - Ответ 3980229

10.01.2013, 17:44. Показов 4802. Ответов 3
Метки (Все метки)

Ответ

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
{Дана матрица. Упорядочить элементы строк матрицы по возрастанию,
а сами строки по возрастанию суммы элементов строк. Использовать 
сортировку прямыми вставками с барьером, реализовав метод в виде 
подпрограммы}
{Метод прямых вставок с барьером (ПрВстБар)
Для того чтобы сократить количество сравнений, производимых нашей программой,
дополним сортируемый массив нулевой компонентой (это следует сделать в разделе 
описаний var) и будем записывать в нее поочередно каждый вставляемый элемент 
(сравните строки (*) и (**) в приведенных вариантах программы). В тех случаях, 
когда вставляемое значение окажется меньше, чем a[1], компонента a[0] будет 
работать как "барьер", не дающий индексу j выйти за нижнюю границу массива. 
Кроме того, компонента a[0] может заменить собою и дополнительную переменную х:}
 
const nmax=20;
var a:array[1..nmax,0..nmax] of integer;
    n,m,i,j,l:byte;
    sm,b:integer;
 
{Метод прямых вставок с барьером}
Procedure MetPrVstBar();
Var k:integer;
begin
for k:= 2 to n do
 if a[l,k-1]>a[l,k] then 
  begin a[l,0]:= a[l,k];          {*}
      j:= k-1;
       while a[l,j]>a[l,0] do         {**}  
      begin a[l,j+1]:= a[l,j];
       j:= j-1;
          end;
  a[l,j+1]:= a[l,0];
 end;
end;
 
BEGIN
randomize;
repeat
write('Количество строк до ',nmax,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов n=');
readln(n);
until n in [1..nmax];
{вычисление сумм четных положительных в строках
и запись их в дополнительный столбец}
for i:=1 to m do
 begin
  sm:=0;
  for j:=1 to n do
   begin
    a[i,j]:=random(20);
    sm:=sm+a[i,j];
   end;
  a[i,n+1]:=sm;
 end;
Writeln; 
writeln('Исходный массив:');
writeln('Сумма':(n*4+8));
for i:=1 to m do
 begin
  for j:=1 to n+1 do
  if j=n+1 then write(a[i,j]:6)
  else write(a[i,j]:4);
  writeln;
 end;
{перестановка в столбцах по возрастанию} 
for l:=1 to m do MetPrVstBar;
{перестановка строк по возрастанию сумм(по последнему столбцу)}
for i:=1 to m-1 do
for l:=i+1 to m do
if a[i,n+1]>a[l,n+1] then
for j:=1 to n+1 do
 begin
  b:=a[i,j];
  a[i,j]:=a[l,j];
  a[l,j]:=b;
 end;
writeln;
writeln('Отсортированный по возрастанию :');
writeln('Сумма':(n*4+8));
for i:=1 to m do
 begin
  for j:=1 to n+1 do
  if j=n+1 then write(a[i,j]:6)
  else write(a[i,j]:4);
  writeln;
 end;
END.
Количество строк до 20 m=5
Количество столбцов n=10

Исходный массив:
Сумма
3 19 10 12 11 7 4 13 19 2 100
18 2 2 6 2 14 18 10 0 18 90
8 14 13 1 17 7 9 18 10 12 109
18 12 6 12 16 15 5 15 14 1 114
12 12 8 10 12 2 13 19 18 16 122

Отсортированный по возрастанию :
Сумма
0 2 2 2 6 10 14 18 18 18 90
2 3 4 7 10 11 12 13 19 19 100
1 7 8 9 10 12 13 14 17 18 109
1 5 6 12 12 14 15 15 16 18 114
2 8 10 12 12 12 13 16 18 19 122
Каряво получилось изображение примера ответа. При выполнении программы видно наглядно.

Вернуться к обсуждению:
Сортировка строк методом прямых вставок с барьером Turbo Pascal
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2013, 17:44
Готовые ответы и решения:

Сортировка прямых вставок с барьером
Дана матрица размера M×N. Упорядочить ее строки так, чтобы их последние элементы образовывали...

Сортировка методом вставок
Приветик всем! Вот мое задание Разработать программу, реализующую простейший метод сортировки...

Сортировка методом Вставок
Вот собственно вопрос. Масив записей структура которого конечная остановка, и время прибытия, нужно...

Сортировка методом вставок
Заполнить массив размером 20 случайными числами в диапазоне от 0 до 200. Во второй массив выбрать...

3
10.01.2013, 17:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2013, 17:44
Помогаю со студенческими работами здесь

Сортировка методом вставок
Заполнить массив размером 20 случайными числами в диапазоне от 0 до 200. Во второй массив выбрать...

Сортировка методом вставок
Нужен код, сортирующий строки матрицы по возрастанию методом вставок. Матрица 5x5.

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

сортировка методом бинарных вставок
помогите решить задачу=)вот она:Дано масив цілих чисел. Скласти програму, яка відсортувала б його...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru