Аватар для eg0r
2 / 2 / 1
Регистрация: 13.10.2009
Сообщений: 74

Создать стек из случайных целых чисел и поменять местами его крайние элементы

04.03.2010, 01:22. Показов 5330. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
создать стек из случайных целых чисел и поменять местами его крайние элементы.

Добавлено через 1 час 45 минут
помогите решить пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2010, 01:22
Ответы с готовыми решениями:

Создать стек из случайных чисел и поменять местами крайние элементы
Создать стек из случайных чисел и поменять местами крайние элементы

Создать стек из целых чисел. Поменять в неё максимальный и минимальный элементы местами
Код программы #include <iostream> #include <fstream> using namespace std; #include "stack.cpp" void Swap(Stack *Head) { ...

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

3
 Аватар для lexus_ilia
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
04.03.2010, 02:24
eg0r, создание стека Вы найдёте в теме. https://www.cyberforum.ru/pascal/thread77419.html А поменять местами элементы - это очень просто, не вижу больших проблем:
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
var
  yk,tmp,tmp1:List; {Указатель на "начало" стека}
...
begin
...
  tmp:=yk;
  while tmp^.next<>nil do
    tmp:=tmp^.next;  {ставим tmp на последний элемент}
  tmp1:=yk;
  while tmp1^.next<>tmp do {tmp1 ставим на предпоследний элемент}
    tmp1^.next;
  if tmp1=yk then {в стеке два элемента}
  begin
    yk^.next:=nil;
    tmp^.next:=yk;
    yk:=tmp;
  end
  else
  begin
    tmp1^.next:=yk;
    tmp^.next:=yk^.next;
    yk^.next:=nil;
    yk:=tmp;
  end;
...
end.
не компилировалось
1
 Аватар для eg0r
2 / 2 / 1
Регистрация: 13.10.2009
Сообщений: 74
04.03.2010, 02:56  [ТС]
Спасибо уже читал, начинаю разбираться.

Добавлено через 29 минут
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
Program Stek;
uses
  crt; {Для использования readkey и clrscr}
type
  Tinf=integer; {тип данных, который будет храниться в элементе стека}
  List=^TList;  {Указатель на элемент типа TList}
  TList=record {А это наименование нашего типа "запись" обычно динамические структуры описываются через запись}
    data:TInf;  {данные, хранимые в элементе}
    next:List;   {указатель на следующий элемент}
  end;
 
 
 
{Процедура добавляющая элемент в стек}
procedure AddElem(var stek1:List;znach1:TInf);
var
  tmp:List;
begin
  GetMem(tmp,sizeof(TList)); {выделяем в памяти место для нового элемента}
  tmp^.next:=stek1;  {указатель на следующий элемент "направляем" на вершину стека}
  tmp^.data:=znach1; {добавляем к элементу данные}
  stek1:=tmp; {вершина стека изменилась, надо перенести и указатели на неё}
end;
 
{Процедура вывода стека}
procedure Print(stek1:List);
begin
  if stek1=nil then {проверка на пустоту стека}
  begin
    writeln('‘⥪ Їгбв.');
    exit;
  end;
  while stek1<>nil do {пока указатель stek1 не станет указывать в пустоту}
  begin   {а это произойдёт как только он перейдёт по ссылке последнего элемента}
    Write(stek1^.data, ' '); {выводить данне}
    stek1:=stek1^.next  {и переносить указатель вглубь по стеку}
  end;
end;
 
var
  yk,tmp,tmp1:List; {Указатель на "начало" стека}
 
begin
...
  tmp:=yk;
  while tmp^.next<>nil do
    tmp:=tmp^.next;  {ставим tmp на последний элемент}
  tmp1:=yk;
  while tmp1^.next<>tmp do {tmp1 ставим на предпоследний элемент}
    tmp1^.next;
  if tmp1=yk then {в стеке два элемента}
  begin
    yk^.next:=nil;
    tmp^.next:=yk;
    yk:=tmp;
  end
  else
  begin
    tmp1^.next:=yk;
    tmp^.next:=yk^.next;
    yk^.next:=nil;
    yk:=tmp;
  end;
...
end.
Добавлено через 24 секунды
я в правильном направлении думаю?
0
 Аватар для lexus_ilia
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
04.03.2010, 12:03
eg0r, ну как-бы немного не так, надо не забыть создать стек, потом не забыть, освободить память из под него, ну а между этими действиями вывести его два раза (до изменений и после изменений), вот так это должно было выглядеть, на сборку программы ушло 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
Program Stek;
uses
  crt; {Для использования readkey и clrscr}
type
  Tinf=integer; {тип данных, который будет храниться в элементе стека}
  List=^TList;  {Указатель на элемент типа TList}
  TList=record {А это наименование нашего типа "запись" обычно динамические структуры описываются через запись}
    data:TInf;  {данные, хранимые в элементе}
    next:List;   {указатель на следующий элемент}
  end;
 
 
 
{Процедура добавляющая элемент в стек}
procedure AddElem(var stek1:List;znach1:TInf);
var
  tmp:List;
begin
  GetMem(tmp,sizeof(TList)); {выделяем в памяти место для нового элемента}
  tmp^.next:=stek1;  {указатель на следующий элемент "направляем" на вершину стека}
  tmp^.data:=znach1; {добавляем к элементу данные}
  stek1:=tmp; {вершина стека изменилась, надо перенести и указатели на неё}
end;
 
{Процедура вывода стека}
procedure Print(stek1:List);
begin
  if stek1=nil then {проверка на пустоту стека}
  begin
    writeln('‘⥪ Їгбв.');
    exit;
  end;
  while stek1<>nil do {пока указатель stek1 не станет указывать в пустоту}
  begin   {а это произойдёт как только он перейдёт по ссылке последнего элемента}
    Write(stek1^.data, ' '); {выводить данне}
    stek1:=stek1^.next  {и переносить указатель вглубь по стеку}
  end;
end;
 
procedure change(var yk:List);
var
  tmp,tmp1:List;
begin
  if yk=nil then
    exit;
  tmp:=yk;
  while tmp^.next<>nil do
    tmp:=tmp^.next;  {ставим tmp на последний элемент}
  tmp1:=yk;
  while tmp1^.next<>tmp do {tmp1 ставим на предпоследний элемент}
    tmp1:=tmp1^.next;
  if tmp1=yk then {в стеке два элемента}
  begin
    yk^.next:=nil;
    tmp^.next:=yk;
    yk:=tmp;
  end
  else
  begin
    tmp1^.next:=yk;
    tmp^.next:=yk^.next;
    yk^.next:=nil;
    yk:=tmp;
  end;
end;
 
{Процедура освобождения памяти занятой стеком}
Procedure FreeStek(stek1:List);
var
  tmp:List;
begin
  while stek1<>nil do {пока stek1 не станет указывать в "пустоту" делать}
  begin
    tmp:=stek1; {указатель tmp направим на вершину стека}
    stek1:=stek1^.next; {вершину стека перенесём на следующий за данной вершиной элемент}
    FreeMem(tmp,SizeOf(Tlist)); {освободим память занятую под старую вершину}
  end;
end;
 
var
  yk:List; {Указатель на "начало" стека}
  n:integer;
  znach:Tinf;
begin
  randomize;
  repeat
    clrscr;
    Writeln('Vvedute kolu4ectvo elementov v steke');
    Write('N= ');
    readln(n);
  until n>0;
  while n>0 do
  begin
    znach:=random(1000);
    AddElem(yk,znach);
    dec(n);
  end;
  clrscr;
  Writeln('Ctek do u3menenui');
  Print(yk);
  change(yk);
  Writeln;
  Writeln('Ctek pocle u3menenui');
  Print(yk);
  readln;
  FreeStek(yk);
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.03.2010, 12:03
Помогаю со студенческими работами здесь

Создать стек из случайных целых чисел и отсортировать элементы по возрастанию (убыванию)
Здраствуйте!Можете помочь с заданием???Дана программа: #include &lt;iostream&gt; #include &lt;malloc.h&gt; using namespace std; /* run...

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

Сформировать массив случайных целых чисел и поменять местами элементы массива 1 с 10 и т.д
Такая вот задачка: Сформировать массив А из 10 случайных целых чисел в диапазоне от -50 до +50 и поменять местами элементы массива 1 с...

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

Создать стек из случайных целых чисел. Развернуть стек, т.е. «дно» стека сделать вершиной, а вершину – «дном»
Создать стек из случайных целых чисел. Развернуть стек, т.е. «дно» стека сделать вершиной, а вершину – «дном».


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru