Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2017, 11:01   #1
Андрей3636
Пользователь
 
Регистрация: 24.10.2017
Сообщений: 11
По умолчанию Нужно сравнить элементы "Содержимое 1 стека после сортировки" и "Содержимое 2 стека после сортировки:" и записать то что получилось при сравнении в новый

Нужно сравнить элементы "Содержимое 1 стека после сортировки" и "Содержимое 2 стека после сортировки:" и записать то что получилось при сравнении в новый ---> 3 стек
Например
Содержимое 1 стека после сортировки:
2,4,9,28...
Содержимое 2 стека после сортировки:
8,10,17,34....
Стек 3:
2,4,8,9,10,17,28,34



Программа которая есть у меня:

Код:
program Project1;
 
const
  //Глубина стека. Т. е. максимальное количество элементов,
  //которое может поместиться в стек.
  StSizeMax = 30;
 
type
  //Тип, описывающий стек.
  TStack = record
    //Указатель вершины стека. Это индекс последнего добавленного элемента.
    Pnt : Integer;
    //Контейнер данных стека.
    Data : array[1..StSizeMax] of Integer;
  end;
 
//Добавить в стек элемент.
function StackPush(var aStack : TStack; const aNum : Integer) : Boolean;
begin
  StackPush := False;
  with aStack do begin
    if Pnt < High(Data) then begin
      //Индекс добавляемого элемента.
      Inc(Pnt);
      //Добавляем элемент в массив (т. е. в стек).
      Data[Pnt] := aNum;
      StackPush := True;
    end;
  end;
end;
 
//Взять из стека элемент.
function StackPop(var aStack : TStack; var aNum : Integer) : Boolean;
begin
  StackPop := False;
  with aStack do begin
    if Pnt >= Low(Data) then begin
      aNum := Data[Pnt];
      Dec(Pnt);
      StackPop := True;
    end;
  end;
end;
 
const
  //Будем работать с M элементами стеков.
  M = 10;
 
var
  St1, St2,St3,St4 : TStack;
  i, j, k, Num1, Num2,Num3,Num4 : Integer;
  F : Boolean;
begin
  St1.Pnt := 0;
  St2.Pnt := 0;
  Randomize;
  for i := 1 to M do StackPush(St1, Random(20)); //StackPush(St1, i);
  Writeln('Содержимое первого стека:');
  while StackPop(St1, Num1) do begin
    StackPush(St2, Num1);
    Write(Num1:4);
  end;
  while StackPop(St2, Num1) do StackPush(St1, Num1);
  //Метод сортировки - пузырьковая.
  j := M;
  repeat
    F := False;
    Dec(j);
    StackPop(St1, Num1);
    for k := 1 to j do begin
      StackPop(St1, Num2);
      if Num1 <= Num2 then begin
        StackPush(St2, Num1);
        Num1 := Num2;
      end else begin
        StackPush(St2, Num2);
        F := True;
      end;
    end;
    StackPush(St1, Num1);
    while StackPop(St2, Num1) do StackPush(St1, Num1);
  until not F;
  writeln;
  Write('Содержимое 1 стека после сортировки:');
  writeln;
  while StackPop(St1, Num1) do 
  Write(Num1:4);
begin
  St3.Pnt := 0;
  St4.Pnt := 0;
  for i := 1 to M do StackPush(St3, Random(20)); //StackPush(St1, i);
  writeln;
  Writeln('Содержимое 2 стека:');
  while StackPop(St3, Num3) do begin
    StackPush(St4, Num3);
    Write(Num3:4);
  end;
  while StackPop(St4, Num3) do StackPush(St3, Num3);
  //Метод сортировки - пузырьковая.
  j := M;
  repeat
    F := False;
    Dec(j);
    StackPop(St3, Num3);
    for k := 1 to j do begin
      StackPop(St3, Num4);
      if Num3<= Num4 then begin
        StackPush(St4, Num3);
        Num3 := Num4;
      end else begin
        StackPush(St4, Num4);
        F := True;
      end;
    end;
    StackPush(St3, Num3);
    while StackPop(St4, Num3) do 
    StackPush(St3, Num3);
  until not F;
  writeln;
  Write('Содержимое 2 стека после сортировки:');
  writeln;
  while StackPop(St3, Num3) do Write(Num3:4);
end;
end.
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 23.12.2017 в 14:06.
Андрей3636 вне форума Ответить с цитированием
Старый 23.12.2017, 13:57   #2
JIeIIIa
Пользователь
 
Регистрация: 21.12.2011
Сообщений: 54
По умолчанию

Если еще актуально, пишите: stealth(собака)bigmir.net
Сразу указывайте на когда нужна работа и предполагаемый бюджет.
JIeIIIa вне форума Ответить с цитированием
Старый 24.12.2017, 03:26   #3
MansMI
Пользователь
 
Регистрация: 04.07.2012
Сообщений: 32
По умолчанию

mansmi@rambler.ru пишите если актуально
MansMI вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Группировка после сортировки Андрей Цапко Общие вопросы Delphi 2 12.04.2017 22:11
Как отобразить что после сортировки число встало под другим индексом ? роман-талица Microsoft Office Excel 16 17.02.2017 13:21
[Pascal] нужно сформировать матрицу из векторов, вектора x,y,z должны стать столбцами матрицы, остановилась после сортировки векторов anna77777 Помощь студентам 3 07.01.2017 01:22
Сравнить эффективность алгоритмов шейкерной сортировки и сортировки слиянием (язык C) Ольга210993 Помощь студентам 2 20.09.2012 13:52
Определить содержимое файла f после выполнения операторов Corwin88 Помощь студентам 11 02.06.2008 00:39