Форум программистов, компьютерный форум, киберфорум
Наши страницы
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Filon4ikSonicX
0 / 0 / 0
Регистрация: 26.03.2016
Сообщений: 14
1

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

20.05.2016, 15:14. Просмотров 720. Ответов 3
Метки нет (Все метки)

Создать стек со случайными целыми числами в диапазоне [- 120;10]. Добавить в вершину стека число, которое вводиться с клавиатуры.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2016, 15:14
Ответы с готовыми решениями:

Как найти число, которое ты ввёл с клавиатуры?
Доброе утро. Вот возник вопросить как решить такую задачу в паскале: Как...

Определить, превышает ли сумма цифр числа число, которое вводится с клавиатуры
1.Дано двузначное число (вводится с клавиатуры). Написать программу...

Из данного натурального числа удалить все цифры A ( A вводиться с клавиатуры).
1. Дано натуральное число: a) Найти произведение цифр этого числа; b) Верно...

Написать программу подсчета суммы факториалов целых чисел, не превышающую число А, которое вводится с клавиатуры. На экран вывести сумму и все слагае
без использование операции If

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

3
Peoples
1347 / 836 / 749
Регистрация: 06.02.2016
Сообщений: 2,232
Записей в блоге: 17
Завершенные тесты: 4
20.05.2016, 20:22 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
program pr;
type
  prec = ^trec;
  trec = record 
    num: integer;
    next: prec;
  end;
var
  stack: prec;
procedure push(const arg: integer);
var
  p: prec;
begin
  new(p);
  p^.num := arg;
  p^.next := stack;
  stack := p;
end;
procedure printstack;
var
  p: prec;
begin
  p := stack;
  while p <> nil do
  begin
    writeln(p^.num);
    p := p^.next;
  end;
end;
procedure StackPush(var stack:prec; var f : prec);
begin
  if f= nil then Exit;
  f^.Next := Stack;
  Stack := f;
end;
var
  S: string;
  i, m, c, k: integer;
  f:prec;
begin
randomize;
  for i := 1 to 10 do
  begin
    m := random(131)-120;
    push(m);
  end;
  printstack;
  writeln;
  writeln('Введите добавляемый элемент');
  readln(c);
  writeln;
  writeln('Стек с добавленным в вершину элементом');
new(f);
f^.num:=c;
StackPush(stack,f);
 printstack;
end.
0
Filon4ikSonicX
0 / 0 / 0
Регистрация: 26.03.2016
Сообщений: 14
21.05.2016, 12:02  [ТС] 3
Огромная благодарность тебе, выручил
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26148 / 17525 / 6950
Регистрация: 22.10.2011
Сообщений: 30,862
Записей в блоге: 6
22.05.2016, 11:10 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Ну, и зачем тут эти извращения? Что за конструкция с push, которая делает одно, и StackPush, которая делает другое, хотя на самом деле это одно и то же действие: добавление элемента в стек? Все проще:
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
program pr;
type
  item = integer;
  prec = ^trec;
  trec = record
    num : item;
    next : prec;
  end;
 
procedure print(stack : prec);
begin
  while stack <> nil do
  begin
    writeln(stack^.num);
    stack := stack^.next;
  end;
end;
 
procedure push(var stack : prec; v : item);
var t : prec;
begin
  new(t);
  t^.num := v;
  t^.Next := Stack;
  Stack := t;
end;
 
var
  i : integer;
  c : item;
  stack : prec = nil;
begin
  randomize;
  for i := 1 to 10 do
    push(stack, random(131)-120);
  print(stack);
 
  writeln;
  writeln('Введите добавляемый элемент');
  readln(c);
  writeln;
  writeln('Стек с добавленным в вершину элементом');
 
  push(stack,c);
  print(stack);
  // тут не забываем очистить стек, иначе будет утечка
end.
Лишние переменные теперь не используются, на глобальных переменных тоже ничего не завязано (к ним не происходит обращения внутри процедур, что являлось побочным эффектом). Ну, и плюс - единообразие. Если в одном случае добавление элемента в стек происходит через Push, то и в другом должно быть то же самое, а не специально для этого придуманная новая процедура.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2016, 11:10

создать стек в памяти из этих чисел таким образом, чтобы на вершине стека было самое большое число. Удалить из стека все отрицательные элементы.
Помогите решить. В файл записывается последовательность целых чисел. Прочитать...

с клавиатуры вводиться символ. Определить, какой символ будет предыдущим.
Помогите решить простые задачи мозги кипят: 3-я. с клавиатуры вводиться...

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке
6: ( сделать по теме:«Подпрограммы. Нерекурсивные процедуры и функции»)...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru