С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Pascal Разработать программу на основе классов для определения одномерных массивов строк фиксированной длины https://www.cyberforum.ru/ pascal/ thread1215893.html
Разработать программу на основе классов для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным строкам массива по индексам, контроль выхода за пределы индексов, выполнение операций поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов, вывод на экран элементов...
Обмен между строками самого длинного слова первой строки на самое короткое слово второй строки Pascal
помогите чем сможете. Беда совсем. оформить в виде модуля подпрограммы, получающие в качестве параметров некоторые данный и производящие с ними определенные действия (действия и данные определяются вариантом задания); • написать программу, которая использует подпрограммы этого модуля и тестирует их на данных, введенных с клавиатуры. Параметры – строки. Действия: • обмен между...
Pascal Подсчитать количество символов в слове Здравствуйте. работа с строками. Как подсчитать количество символов в слове и вывести его на экран в заданном пользователем тексте https://www.cyberforum.ru/ pascal/ thread1215506.html Pascal Квадратичная сплайн интерполяция/параболическая интерполяция https://www.cyberforum.ru/ pascal/ thread1215479.html
Помогите, пожалуйста, реализовать на pascal параболическую интерполяцию или хотя бы дайте хороший алгоритм для этого метода. Заранее спасибо ;)
Перевод кода с C++ Pascal
Помогите пожалуйста. Нужно перевести код программы с файлами из С++ в Паскаль. #include <iostream> #include <conio.h> #include <fstream> using namespace std; int fak(int n) { return((n==1)? 1:n*fak(n-1)); } int fun(int n,int*a)
Pascal Разработка программ с использованием объектно-ориентированной технологии https://www.cyberforum.ru/ pascal/ thread1214995.html
Уважаемые форумчане...срочна нужна ваша помощь...завал по предмету... Вот что надо сделать... Родитель — трапеция с горизонтальными основаниями. Его методы: перемещение влево и вправо. Потомок — кораблик с парусом. Его методы: поднятие/спуск паруса. Помогите пожалуйста...
Pascal Найдите произведение элементов строки матрицы с наименьшим значением https://www.cyberforum.ru/ pascal/ thread1214515.html
здраствуйте, помогите пожалуйста с кодом в задаче. В матрице 5х5 с диапазоном значений (-20, 20) найдите произведение элементов строки с наименьшим значением и сумму элементов столбца с наибольшим значением.
Pascal Удалить комментарии из файла, содержащего программный код Си
удалить коментарии с файла, которое имеет С-програму
Pascal В каждой строке файла выделить наибольшую последовательность цифр https://www.cyberforum.ru/ pascal/ thread1214369.html
створити текстовий файл , рядок якого містить цифри і символи. в кожному рядку виділити найбільшу послідовність цмфр. довжини цих послідовностей записати першими символами рядків цифровго файлу . кому не лень и кто может помогите ... Добавлено через 5 минут создать текстовый файл, строка которого содержит цифры и символы. в каждой строке выделить наибольшую последовательность цифр. длины...
Pascal Переписать четные числа во второй файл, подсчитать их количество https://www.cyberforum.ru/ pascal/ thread1214367.html
помогите пожалуйста. создать файл целых чисел вводя данные с клавиатуры. переписать четные числа во второй файла, подсчитать их количество. определить размер файла. если он превышает заданное пользователем значение, то обрезать его
Упорядочить четные по номеру элементы первой половины массива по убыванию обратных значений Pascal
Упорядочить четные по номеру элементы первой половины массива по убыванию обратных значений
Pascal Определить 2 наибольших элемента среди четных по значению элементов третей четверти массива Определить 2 наибольших элемента среди четных по значению элементов третей четверти массива https://www.cyberforum.ru/ pascal/ thread1214302.html
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
25.06.2014, 19:46 0

Объединить два упорядоченных по неубыванию списка в один упорядоченный по неубыванию - Pascal - Ответ 6363938

25.06.2014, 19:46. Показов 5529. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено LexaVRN как решение

Решение

Слияние двух списков в третий таким образом, чтобы в третьем списке элементы оказались упорядоченными по неубыванию.
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
158
159
program Project1;
 
{Задача:
Слияние двух списков в третий таким образом, чтобы в третьем списке элементы
оказались упорядоченными по неубыванию. Слияние оформлено в виде отдельной процедуры.}
 
type
  {Тип основных данных.}
  TData = Integer;
  {Тип, описывающий указатель на элемент.}
  TPElem = ^TElem;
  {Тип, описывающий элемент списка.}
  TElem = record
    Data : TData;
    PNext : TPElem; {Указатель на следующий элемент.}
  end;
  {Тип, описывающий список.}
  TDList = record
    PFirst, PLast : TPElem; {Указатели на первый и на последний элементы списка.}
  end;
 
{Процедуры для работы со списком.}
 
{Начальная инициализация списка. Внимание! Эту процедуру можно выполнять
только в отношении пустого списка. Иначе будут утечки памяти.}
procedure Init(var aL : TDList);
begin
  aL.PFirst := nil;
  aL.PLast := nil;
end;
 
{Освобождение памяти, занятой для элементов списка и инициализация.}
procedure LFree(var aL : TDList);
var
  P, PDel : TPElem;
begin
  P := aL.PFirst; {Указатель на первый элемент списка.}
  while P <> nil do
  begin
    PDel := P; {Запоминаем указатель на текущий элемент.}
    P := P^.PNext; {Получаем указатель на следующий элемент.}
    Dispose(PDel); {Освобождаем память, занятую текущим элементом списка.}
  end;
  Init(aL);
end;
 
{Добавление элемента в список согласно сортировочному правилу - по неубыванию,
в данном случае.}
procedure AddAsc(var aL : TDList; const aData : TData);
var
  PNew, PCur, PPrev : TPElem;
begin
  New(PNew); {Выделяем паямять для элемента.}
  PNew^.Data := aData; {Записываем данные.}
  {Ищем элемент, который больше или равен новому - перед ним следует вставить
  новый элемент.}
  PCur := aL.PFirst;{Указатель на текущий элемент.}
  {Указатель на предыдущий элемент. Этот указатель мы должны знать для того,
  чтобы мы могли вставить новый элемент между PPrev и PCur.}
  PPrev := nil;
  while (PCur <> nil) and (PCur^.Data < aData) do
  begin
    PPrev := PCur;
    PCur := PCur^.PNext;
  end;
  {Теперь, в зависимости от результатов поиска выполняем вставку нового элемента
  в нужное место списка.}
  PNew^.PNext := PCur;
  if PPrev <> nil then {Добавление между PPrev и PCur, либо - в конец списка.}
    PPrev^.PNext := PNew
  else {Добавление в начало списка.}
    aL.PFirst := PNew;
  if PNew^.PNext = nil then {Если новый элемент стал последним элементом в списке.}
    aL.PLast := PNew;
end;
 
{Слияние списков aL1 и aL2 в список aL3 с упорядочиванием элементов по неубыванию.}
procedure MergeAsc(const aL1, aL2 : TDList; var aL3 : TDList);
var
  P : TPElem;
begin
  {Очистка результирующего списка - освобождение памяти, занятой для элементов этого списка.}
  LFree(aL3);
  {Слияние первого списка.}
  P := aL1.PFirst;
  while P <> nil do
  begin
    AddAsc(aL3, P^.Data);
    P := P^.PNext;
  end;
  {Слияние второго списка.}
  P := aL2.PFirst;
  while P <> nil do
  begin
    AddAsc(aL3, P^.Data);
    P := P^.PNext;
  end;
end;
 
{Распечатка списка.}
procedure LWriteln(const aL : TDList);
var
  P : TPElem;
begin
  P := aL.PFirst; {Указатель на первый элемент списка.}
  if P <> nil then
  repeat
    {Если это не первый элемент, то в распечатке ставим перед ним запятую.}
    if P <> aL.PFirst then
      Write(', ');
    Write(P^.Data); {Распечатываем данные текущего элемента.}
    P := P^.PNext; {Получаем указатель на следующий элемент.}
  until P = nil
  else
    Write('Список пуст.');
  Writeln;
end;
 
const
  M = 5; {Количество элементов, которые мы будем добавлять в списки.}
var
  L1, L2, L3 : TDList;
  i : Integer;
  S : String;
begin
  {Начальная инициализация списков.}
  Init(L1);
  Init(L2);
  Init(L3);
 
  repeat
    {Создаём исходные списки.}
    Randomize; {Инициализируем генератор случайных чисел.}
    for i := 1 to M do
    begin
      AddAsc(L1, Random(100)); {Случайные целые числа из диапазона: 0..99.}
      AddAsc(L2, Random(100));
    end;
    Writeln('Заданы списки: ');
    LWriteln(L1);
    LWriteln(L2);
 
    {Слияние списков L1 и L2 в список L3 с упорядочиванием элементов по неубыванию.}
    MergeAsc(L1, L2, L3);
 
    {Ответ.}
    Writeln('Результат слияния:');
    LWriteln(L3);
 
    {Освобождение памяти, занятой для элементов списков.}
    LFree(L1);
    LFree(L2);
    LFree(L3);
    Writeln('Память, выделенная для списков, освобождена.');
 
    Writeln('Повторить - Enter, выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.


Вернуться к обсуждению:
Объединить два упорядоченных по неубыванию списка в один упорядоченный по неубыванию Pascal
4
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2014, 19:46
Готовые ответы и решения:

Объединить два упорядоченных по неубыванию списка М1 и М2 в один упорядоченный
Написать программу, содержащую процедуру, которая объединяет два упорядоченных по неубыванию списка...

Дано два упорядоченных целочисленных массива. Объединить их в один упорядоченный.
Дано два упорядоченных целочисленных массива. Объединить их в один упорядоченный. помогите...

Объединить два упорядоченных списка в один, тоже упорядоченный
Program spisoc1; Type spis=^spisoc; spisoc=record inf:integer; link:spis; end;...

Соединить два упорядоченных по неубыванию списка в упорядоченный по неубыванию список
Написать прогу соединяющую два упорядоченных по неубыванию списка в упорядоченный по неубыванию...

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

Образовать из двух упорядоченных по неубыванию массивов один, упорядоченный по неубыванию
Даны два числа m и n, и два упорядоченных по неубыванию массива A≤A≤...≤A и...

Объединить два упорядоченных по неубыванию массива в один
Даны два одномерных массива, содержащих по N и M элементов, упорядоченных по не убыванию. Написать...

Сформировать новый массив, упорядоченный по неубыванию, из двух массивов-параметров, уже упорядоченных по неубыванию
Функция, формирующая новый массив, упорядоченный по неубыванию, из двух массивов-параметров, уже...

Объединить два упорядоченных по возрастанию массива в один, упорядоченный по убыванию
Здравствуйте, форумчане. Помогите пожалуйста сделать реализацию программы, задача: У меня...

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