Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Turbo Pascal Найти позицию а) первой и б) последней запятой в строке. Дана строка символов.Найти такое натуральное i, что а) si – первая по порядку запятая; б) si – последняя по порядку запятая. Var s:string; i,inn,ik:byte; Begin write('Введите строку: ');readln(s); For i:=1 to Length(s) do if (s=',')and(inn=0) then inn:=i else if (s=',') then ik:=i; ... https://www.cyberforum.ru/ turbo-pascal/ thread1193501.html Turbo Pascal Определить, сколько слов в ведённой строке оканчивается буквой "я" https://www.cyberforum.ru/ turbo-pascal/ thread1193716.html
Написать программу, определяющую, сколько слов в ведённой строке оканчивается буквой “я”, если известно, что после слова обязательно стоит либо пробел, либо точка. В начало кода надо добавить: St := St + ' '; {Или: St := St + '.';}
Turbo Pascal Все элементы массива, начиная с первого положительного, уменьшить на 0,5.
Дан массив А из n действительных чисел: a1, …, an. Все элементы массива, начиная с первого положительного, уменьшить на 0,5. Получить: min(a2, a4,…)+ max(a1, a3,…).
Turbo Pascal Дан текст имеющий вид а1+а2 +а3+...+аi. Составить программу, вычисляющую эту сумму Дан текст имеющий вид а1+а2 +а3+...+аi. Где аi – целые числа (0<=аi<=9). Составить программу, вычисляющую эту сумму. Помогите пожалуйста sum:=0; for i:=1 to length(text) do if text in then sum:=sum+ord(text)-48; https://www.cyberforum.ru/ turbo-pascal/ thread1193459.html
Turbo Pascal Работа с типизированными файлами. Расписание поездов. https://www.cyberforum.ru/ turbo-pascal/ thread1193606.html
В расписании поездов указано: номер поезда, пункт отправления, пункт назначения, время отправления, время в пути, цена билета. Вывести информацию о поездах, следующих из Москвы в Санкт-Петербург,...
Turbo Pascal Выводит ошибку Exitcode 200
Program jjknjk3; var x:integer;y:real; begin x:=-10; writeln(' x y '); while x<>-3 do begin y:=((3)/x)+(2*x/(x+1)); writeln(x:4,' | ',y:5:2); x:=x+1; end; Так задание напиши, ибо в программе сплошная ахинея написана.
Turbo Pascal Вычислить путь, пройденный свободно падающим телом за t секунд Вычислить путь, пройденный свободно падающим телом за t секунд. Программу составить таким образом, чтобы можно было вычислить пройденный телом путь при имеющимся пройденном начальном пути. Помогите,... https://www.cyberforum.ru/ turbo-pascal/ thread1193751.html Turbo Pascal Построить график интерполяционного полинома помогите написать программу построения графика интерполяционного полинома с использованием формулы кубического сплайна значения в узлах: X0=12 Y0=56 X1=13 Y1=80 X2=14 Y2=150 X3=15 Y3=100... https://www.cyberforum.ru/ turbo-pascal/ thread1193607.html
Почему на выделение записи new(f) уходит 128Б? Turbo Pascal
Объясните пожалуйста,почему на выделение записи new(f) уходит 128б. Указатель занимает 4б,integer 2б.Должно быть кратно 8.Почему 128? Program uk; uses crt; Type MyFile = File of Integer; Var... Объясните пожалуйста,почему на выделение записи new(f) уходит 128б. Указатель занимает 4б,integer 2б.Должно быть кратно 8.Почему 128? Здесь "Integer" совершенно не причём. В программе есть...
Turbo Pascal Записать в текстовый файл текст на русском языке Записать в текстовый файл текст на русском языке. Выполнить следующие операции с созданным файлом: - Определить, сколько раз встречается в нем самое длинное слово; - Провести частотный анализ... https://www.cyberforum.ru/ turbo-pascal/ thread1193555.html
Turbo Pascal Поменять местами первую и вторую половины массива https://www.cyberforum.ru/ turbo-pascal/ thread1193455.html
Дан массив из 10 целых положительных и отрицательных чисел, заполненный с клавиатуры. Поменять местами первую и вторую половины массива. Помогите решить n:=10; for i:=1 to n div 2 do begin x:=a; a:=a; a:=x; end;
Turbo Pascal Все неотрицательные элементы массива, не принадлежащие отрезку, заменить на единицу Сижу на практике,осталась 1 задача. Вообще внепонятия как ее решить. Хелп. Дан массив A из действительных чисел: a1, ... an. Вычислить: \sqrt{10+a_1^2}+...+\sqrt{10+a_n^2} Все... uses crt; const nmax=100; var a:array of real; n,i,k1,k2:byte; s:real; begin clrscr; randomize; repeat write('Размер массива А от 2 до ',nmax,' n='); https://www.cyberforum.ru/ turbo-pascal/ thread1193416.html
 Аватар для Mawrat
13108 / 5889 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
01.06.2014, 01:39 0

Слейте два упорядоченных по невозрастанию списка в один - Turbo Pascal - Ответ 6256205

01.06.2014, 01:39. Показов 3411. Ответов 2
Метки (Все метки)

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

Решение

Если слияние выполняется на некотором списке, то перед слиянием только этот список должен быть упорядочен. А упорядоченность в других списках не имеет никакого значения. В добавок, в формулировке задачи сказано, что слияние нужно проводить на новом списке. Т. е., в этом случае начальная упорядоченность вообще никакой роли не играет.
Слияние с сохранением упорядоченности реализуется с помощью специальной процедуры вставки элемента в список. Эта процедура должна находить положение в списке, где при вставке нового элемента упорядоченность не нарушится.
И раз уж в задаче требуется начальная упорядоченность списков, тогда просто заполнять эти списки нужно через эту самую специальную процедуру вставки.
Решение может выглядеть так:
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
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 AddDesc(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;
 
{Распечатка списка.}
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;
  P : TPElem;
  i : Integer;
  S : String;
begin
  {Начальная инициализация списков.}
  Init(L1);
  Init(L2);
  Init(L3);
 
  repeat
    {Создаём исходные списки.}
    Randomize; {Инициализируем генератор случайных чисел.}
    for i := 1 to M do
    begin
      AddDesc(L1, Random(100)); {Случайные целые числа из диапазона: 0..99.}
      AddDesc(L2, Random(100));
    end;
    Writeln('Заданы списки: ');
    LWriteln(L1);
    LWriteln(L2);
 
    {Выполняем слияние исходных списков в результирующий.}
    {Слияние первого списка.}
    P := L1.PFirst;
    while P <> nil do
    begin
      AddDesc(L3, P^.Data);
      P := P^.PNext;
    end;
    {Слияние второго списка.}
    P := L2.PFirst;
    while P <> nil do
    begin
      AddDesc(L3, P^.Data);
      P := P^.PNext;
    end;
 
    {Ответ.}
    Writeln('Результат слияния:');
    LWriteln(L3);
 
    {Освобождение памяти, занятой для элементов списков.}
    LFree(L1);
    LFree(L2);
    LFree(L3);
    Writeln('Память, выделенная для списков - освобождена.');
 
    Writeln('Повторить - Enter, выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.


Вернуться к обсуждению:
Слейте два упорядоченных по невозрастанию списка в один Turbo Pascal
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.06.2014, 01:39
Готовые ответы и решения:

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

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

Два упорядоченных по убыванию списка объединить в один, не нарушив порядка
два упорядоченных по убыванию списка объединить в один не нарушив порядка.

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

Списки. Два упорядоченных по возрастанию списка целых чисел объединить в один
Доброго времени суток, ребята. Нужна помощь в написание программы. Два списка упорядоченных по возрастанию целых чисел объединить в...

Описать функцию, которая объединяет два упорядоченных по возрастанию списка в один
2)Описать функцию, которая объединяет два упорядоченных по возрастанию списка в один. не знаю как делать помогите пожалуйста!!!!

Объединить два упорядоченных связанных списка в один через функцию merge
Совсем недавно начал изучение списков в С++(как и сам С++), срочно требуется ваша помощь по решению следующей задачи: Объединить два...

Объединить два упорядоченных списка целых значений в один, и сохранить их в третьем списке
Добрый час! Есть задача: Напишите программу, которая объединяет два объекта упорядоченного списка целых чисел в один объект...

Объединить два упорядоченных по неубыванию списка в один упорядоченный по неубыванию
Помогите описать процедуру, которая объединяет два упорядоченных по неубыванию списка X1 и X2 в один упорядоченный по неубыванию список.

0
Новые блоги и статьи
Создаем SPA Router на чистом JavaScript
bytestream 17.02.2025
В современной веб-разработке одностраничные приложения (SPA) стали стандартом для создания динамичных и отзывчивых пользовательских интерфейсов. Ключевым компонентом любого SPA является роутер -. . .
Машинное обучение на TypeScript и TensorFlow
bytestream 17.02.2025
Машинное обучение становится все более востребованным направлением в современной разработке программного обеспечения. Интеграция искусственного интеллекта в веб-приложения открывает новые возможности. . .
Манипуляция данными EXIF и JPEG в JavaScript
bytestream 17.02.2025
В современном мире цифровой фотографии метаданные изображений играют важнейшую роль в организации и управлении медиаконтентом. Формат EXIF (Exchangeable Image File Format) - это стандарт,. . .
Как создать GUID/UUID в JavaScript
bytestream 17.02.2025
GUID (Globally Unique Identifier) и UUID (Universally Unique Identifier) - это специальные форматы 128-битных идентификаторов, которые практически гарантируют уникальность значения во времени и. . .
Что такое мышление в упрощенном смысле (моё субъективное видение, для создания модели).
Hrethgir 17.02.2025
Разумеется упрощать смысл есть. Дело в том, что я пришёл к тому выводу, что даже если я создам свой процессор (конвейер), то первое для чего смогу его использовать в качестве демонстративного. . .
Как Node.js устроен изнутри
Wired 17.02.2025
Node. js коренным образом изменил подход к веб-разработке, позволив использовать JavaScript не только в браузере, но и на стороне сервера. Созданный в 2009 году Райаном Далем, Node. js представляет. . .
Как обновить Node.js в Windows
Wired 17.02.2025
Думаю, многие разработчики сталкивались с ситуацией, когда устаревшая версия Node. js становилась источником проблем - от несовместимости с новыми пакетами до уязвимостей в безопасности. Особенно это. . .
Как обновить Node.js в MacOS
Wired 17.02.2025
В Node. js существует несколько подходов к обновлению, каждый из которых имеет свои преимущества и особенности применения. Выбор конкретного метода зависит от ваших потребностей - будь то. . .
Как обновить Node.js в Linux
Wired 17.02.2025
Обновление Node. js может показаться сложной задачей, особенно если у вас несколько проектов с разными зависимостями. Однако существует несколько надежных способов обновления, подходящих для разных. . .
[golang] 134. Gas Station
alhaos 17.02.2025
Тут нам даны два целочисленных слайса gas и cost, индексы массива представляют собой заправочные станции. а элементы gas это количество топлива на такой станции, cost это количество топлива. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru