Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 08.06.2014
Сообщений: 7

Создать стек со случайными целыми числами. Удалить все нулевые элементы

08.06.2014, 18:08. Показов 1733. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать стек со случайными целыми числами. Удалить все нулевые элементы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.06.2014, 18:08
Ответы с готовыми решениями:

Создать стек со случайными целыми числами. Удалить все элементы, равные 5
Создать стек со случайными целыми числами. Удалить все элементы, равные 5.

Создать стек со случайными целыми числами. Удалить из него записи с четными числами.
Создать стек со случайными целыми числами. Удалить из него записи с четными числами.

Создать стек со случайными целыми числами. Удалить минимальный элемент
Создать стек со случайными целыми числами. Удалить минимальный элемент.

4
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
09.06.2014, 00:19
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
type TList=^List;
    List=record
    x:Integer;
    next:TList;
    end;
 
procedure add(var st:TList;value:Integer);
var tmp:TList;
begin
new(tmp);
tmp^.x:=value;
tmp^.next:=st;
st:=tmp;
end;
 
procedure create(var st:TList;n:Integer);
var i:Integer;
begin
for i:=1 to n do add(st,Random(2));
end;
 
procedure print(st:TList);
begin
while st<>nil do
 begin
  Write(st^.x,' ');
  st:=st^.next;
 end;
Writeln;
end;
 
procedure free(var st:TList);
var tmp:TList;
begin
 
while st<>nil do
 begin
  tmp:=st;
  st:=st^.next;
  dispose(tmp);
 end;
 
end;
 
procedure delete(var st:TList);
var lst,next:TList;
begin
 
lst:=st;
while lst<>nil do
 begin
  next:=lst^.next;
  if next=nil then Break;
  if next^.x=0 then
  begin
    lst^.next:=next^.next;
    dispose(next);
  end else lst:=lst^.next;
 end;
lst:=st;
if lst^.x=0 then
begin
st:=st^.next;
dispose(lst);
end;
 
end;
 
 
var st:TList;
n:Integer;
begin
st:=nil;
Randomize;
Write('Количество элементов стека:');
Readln(n);
create(st,n);
Writeln('Исходный стек:');
print(st);
delete(st);
Writeln('Полученный стек:');
print(st);
free(st);
Readln;
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33184 / 21482 / 8231
Регистрация: 22.10.2011
Сообщений: 36,851
Записей в блоге: 12
09.06.2014, 17:59
Удалить нулевые элементы из стека можно единственным образом: задействовать вспомогательный стек, при переносе в который отслеживать нули и не заносить их:
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
{$mode objfpc}
uses crt;
type
  pstack = ^tstack;
  tstack =
  record
    info : integer;
    next : pstack;
  end;
 
procedure push(var s : pstack; value : integer);
var p : pstack;
begin
  new(p);
  p^.next := s;
  p^.info := value;
  s := p;
end;
 
function pop(var s : pstack) : integer;
var p : pstack;
begin
  result := s^.info;
  p := s;
  s := s^.next;
  dispose(p);
end;
 
procedure print(s : pstack);
begin
  while s <> nil do
  begin
    write(s^.info:4);
    s := s^.next;
  end;
  writeln;
end;
 
var
  s, t : pstack;
  i, n, value : integer;
 
begin
  randomize;
  s := nil; t := nil;
  write('n = '); readln(n);
  for i := 1 to n do push(s, random(10));
 
  print(s);
 
  while s <> nil do
  begin
    value := pop(s);
    if value <> 0 then push(t, value);
  end;
 
  while t <> nil do
    push(s, pop(t));
 
  print(s);
  readln;
  // не забываем удалить содержимое s
end.
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
09.06.2014, 18:03
UI, т.е со стеком обычно работают только с помощью push и pop и только так?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33184 / 21482 / 8231
Регистрация: 22.10.2011
Сообщений: 36,851
Записей в блоге: 12
09.06.2014, 20:26
Именно так, ибо других операций над стеками не предусмотрено. Ну, если не считать Top(), которая получает содержимое вершины, не изымая ее из стека
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2014, 20:26
Помогаю со студенческими работами здесь

Создать стек со случайными целыми числами. Удалить максимальный элемент
Создать стек со случайными целыми числами. Удалить максимальный элемент.

Создать стек со случайными целыми числами. Удалить все элементы, равные первому
Создать стек со случайными целыми числами. Удалить все элементы, равные первому.

Создать стек со случайными целыми числами в диапазоне –50 до +50 и преобразовать его в два стека
Создать стек со случайными целыми числами в диапазоне –50 до +50 и преобразовать его в два стека. Первый должен содержать только...

Создать стек со случайными целыми числами в диапазоне –50 до +50 и преобразовать его в два стека
Создать стек со случайными целыми числами в диапазоне –50 до +50 и преобразовать его в два стека. Первый должен содержать только...

Создать два стека со случайными целыми числами в диапазоне –20 до +20 и преобразовать его в один стек
Создать два стека со случайными целыми числами в диапазоне –20 до +20 и преобразовать его в один стек. Первый должен содержать только...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru