Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
 Аватар для stimsa
0 / 0 / 1
Регистрация: 13.02.2010
Сообщений: 51

работа со стеком

14.02.2010, 12:52. Показов 2710. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуста!!!!!Вот такое задание:
1.На языке программирования Pascal реализовать процедуры работы со стеком на последовательном распределении памяти:

- Создание пустого стека

- Добавление элемента на вершину стека

- Удаление элемента с вершины стека

Процедуры, реализующие операции добавления и удаления элемента должны разумным образом обрабатывать ситуации переполнения и нехватки (схемы (2а), (3а)). Стек реализовать, используя одномерный массив и переменную типа integer (указатель на вершину стека).

2. Провести вычислительный эксперимент с полученными процедурами

Получить свой вариант файла, содержащего предложения на русском языке в кодировке DOS (Нажмите здесь). Номер варианта соответствует Вашему номеру в журнале академической группы.

a) Используя результат задания 1 запрограммировать получение нового текстового файла, в котором все слова во всех предложениях записаны в обратном порядке. В программе установить максимальный размер стека равным 10.

b) Используя результат задания 1 запрограммировать получение нового текстового файла, в котором в котором буквы каждого слова записаны в обратном порядке. В программе установить максимальный размер стека равным 5.

Вот мой код:
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
uses crt;
var
stek,qwerty: array[1..100] of string;
mas: array[1..50] of integer;
i,j,m,e,r,l,b,y,x,u,h,k:integer;
a,s,c,q,z,f:string;
t,g,p,o,v:text;
label w,d,n;
begin
r:=1;
clrscr;
i:=0;
repeat
w:
writeln('1-dobavit element v stek');
writeln('2-udalit element s steka');
writeln('3-prosmotr steka');
writeln('4-ochistka steka');
writeln('5-zadanie 2a ');
writeln('6-zadanie 2b ');
writeln('7-exit');
readln(a);
clrscr;
if a='1' then
begin
if i=10 then            {проверка на переполнения} 
begin
writeln;
writeln('PEREPOLNENIE');
readkey;
clrscr;
goto w
end;
writeln('vvedite danie');
readln(q);
inc(i);
stek[i]:=q;
clrscr;
{goto w}
end;
if a='2' then
begin
if i=0 then             {проверка пустой ли стек}
begin
writeln;
writeln('NEHVATKA');
readkey;
clrscr;
goto w
end;
i:=i-1;             {удаления елемента стэка}
clrscr;
{goto w}
end;
if a='3' then
begin
if i=0 then
writeln('stek pust');
for j:=i downto 1 do
writeln(stek[j]);
readkey;
clrscr;
{goto w}
end;
if a='4'then
begin
writeln('stek ochishen');
i:=0;               {удаления елемента стэка}
readkey;
{goto w}clrscr;
end;
 
{-------------------------задание 2а-----------------------------}
 
if a='5' then
begin
i:=0;
x:=0;
assign(t,'d:\4318\f1.txt');
assign(g,'d:\4318\f2.txt');
reset(t);
rewrite(g);
repeat
readln(t,s);
b:=1;
r:=1;
c:='';
m:=length(s);
for r:=1 to m do
begin
if s[r]=' ' then            {ищем пробелы в стороке}
begin
inc(i);
if i=11 then            {проверка на переполнение стека}
begin
inc(x);
for l:=1 to 10 do       {если он полный то содержимое}
qwerty[l]:=stek[l];     {записываем в масив}
i:=1;               {и очищаем стек}
end;
for e:=r downto b do
begin
c:=c+s[e];          {наше слово}
end;
stek[i]:=c;         {слово записываем в стек}
c:='';              {обнуляем переменую для слова}
b:=r+1;
end;
if s[r-1]='.' then
begin
for l:=i downto 1 do
write(g,stek[l]);       {записываем в файл содержимое стэка}
writeln(g);
if x=1 then
begin
for j:=10 downto 1 do
write(g,qwerty[j]);
{write(g,'.');}
x:=0;
end;
i:=0;
end;
end;
until eof (t);
close(t);
close(g);
assign(t,'d:\4318\f1.txt');
assign(g,'d:\4318\f2.txt');
assign(o,'d:\4318\f4.txt');
reset(t);
rewrite(o);
x:=1;
repeat
readln(t,s);
m:=length(s);
mas[x]:=m;
inc(x);
until eof (t);
close(t);
x:=1;
reset (g);
repeat
readln(g,f);
y:=length(f);
for r:=1 to y do
begin
c:=c+f[r];
inc(i);
if i=mas[x] then
begin
writeln(o,c);
c:='';
i:=0;
inc(x);
end;
end;
until eof (g);
close(g);
close(o);
writeln('Preoprazovanie vipolneno');
writeln('1-prosmotr rezultata');
readln(z);
if z='1' then
begin
clrscr;
reset(o);
repeat
readln(o,s);
writeln(s);
until eof (o);
close(o);
readkey;
clrscr;
end;
clrscr;
end;
 
{-----------------задание 2b----------------------------}
 
if a='6' then
begin
assign(t,'d:\4318\f1.txt');
assign(p,'d:\4318\f3.txt');
reset(t);
rewrite(p);
s:=' ';
repeat
readln(t,s);
i:=0;
r:=1;
b:=1;
c:='';
m:=length(s);
for r:=1 to m do
begin
if s[r]=' ' then
begin
inc(i);
if i=11 then        {проверка на переполнения стека}
begin
for l:=1 to 10 do   {если он полный}
write(p,stek[l]);   {то содержимое записывае в файл}
i:=1;           {и очищаем}
end;
for e:=b to r do
begin
c:=c+s[e];      {наше слово записаное в обратном порядке символов}
end;
stek[i]:=c;     {слово помещаем в стек}
c:='';
b:=r+1;
end;
end;
for l:=1 to i do
write(p,stek[l]);
writeln(p);
until eof (t);
close(t);
close(p);
writeln('Preoprazovanie vipolneno');
writeln('1-prosmotr rezultata');
readln(z);
if z='1' then
begin
clrscr;
reset(p);
repeat
readln(p,s);
writeln(s);
until eof (p);
close(p);
readkey;
clrscr;
end;
clrscr;
end;
until a='7';
end.
Помогите найти ошибку)))))

Добавлено через 1 час 57 минут
Помогите!!!!Пожалуста!!!!1
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2010, 12:52
Ответы с готовыми решениями:

Работа со стеком
Заполнить стек значениями произвольно выбранного типа. Вставить символ '*' в середину стека, если четное число элементов, а если нечетное,...

работа со стеком
uses crt; type str=string; uk_stack=^stack; stack=record inf:str; nevt:uk_stack; end; var beg:uk_stack; s:real;

Работа со стеком
Доброго времени суток. Мне нужно создать стек и вывести его на экран. Или что-то с вводом или выводом, не пойму никак. uses crt; ...

5
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
14.02.2010, 13:09
stimsa, А с чего Вы взяли что у Вас стек? Это просто линейный массив. Почитайте эту тему.
https://www.cyberforum.ru/pascal/thread77419.html
0
 Аватар для stimsa
0 / 0 / 1
Регистрация: 13.02.2010
Сообщений: 51
15.02.2010, 15:19  [ТС]
Тему я почитала.У меня стек задан линейным массивом.

Добавлено через 5 минут
Файл F1:
Мне же приходится вначале забираться на гранитный фаллос чудовища.
Слышу,как волк хихикает.Блин.Ему смешно...Наконец я на ладони.
Пробую нить ногой - она слегка покачивается.Как струна.
Внизу , далеко-далеко , скалы и голубая змейка реки .
- Смелее, герой! - кричит волк .
Не могут рядовые виртуальщики ходить по этому мосту. Что-то не так ...
Ладонь, на которой я стою, вдруг начинает дрожать и
медленно сжимается. Мост-нить дрожит, готовый порваться .
А надо мной нависает оскаленная морда ожившего монстра .
- Кто ты? - ревет он так, что закладывает уши . По-русски, между
прочим !
- Гость! - кричу я, пытаясь вырвать ноги из хватки гранитных пальцев .
Монстр хохочет :
- Гость не приходит с запретным !
Указательный палец правой руки несется ко мне, словно намереваясь
расплющить. Невольно жмурюсь. Но монстр лишь тычет пальцем в меч .
Да, это не простенькая беззащитная программа - водитель
"Дип-проводника". Это отличная сторожевая система с псевдоинтеллектом на
порядок лучше "Виндоус-Хоум". Как же он определил мой родной язык ?
- Гость не приходит незваным !
- Меня позвали !
- Кто ?

Добавлено через 1 час 18 минут
помогите найти ошибку в задании 2а и 2б

Добавлено через 21 час 43 минуты
ну че никто не может помочь????
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
15.02.2010, 15:52
В этой теме
https://www.cyberforum.ru/pascal/thread95369.html
товарищ где-то разжился кодом, посмотрите.
0
15.02.2010, 15:53

Не по теме:

Цитата Сообщение от Puporev Посмотреть сообщение
товарищ где-то разжился кодом, посмотрите.
заодно и разберутся может вместе, что да как :)

0
 Аватар для stimsa
0 / 0 / 1
Регистрация: 13.02.2010
Сообщений: 51
15.02.2010, 17:47  [ТС]
спасибо)))

Добавлено через 7 минут
но я просила найти ошибку не в модулях а там где непосредственно производится вычислительный эксперемент т е : сделать так чтобы в случае 2а менялись слова в каждом предложении а в случае 2б буквы в словах.и обязательно выводился весь текст!!!!!
Помогите умоляю!!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2010, 17:47
Помогаю со студенческими работами здесь

Pascal работа с файлами и стеком. Требуется грамотный совет
Собственно задача с олимпиады Определим правильные скобочные выражения так: Пустое выражение - правильное. Если выражение S...

Работа со стеком
Создать программу, реализовав работу со структурой данных - стеком. В программе реализовать добавление и удаление элементов.

Работа со стеком
Задача: Написать программу которая создает стек целых чисел считываемых из файла и удаляет из него повторяющиеся числа. Вывести элементы...

Работа со СТЕКОМ!!!!!!:)
Создать класс для работы со стеком. Элемент стека – символ. --- Сформировать два стека,содержащие последовательности символов. ---...

Работа со стеком!
Необходимо записать заполнение стека с клавиатуры. Добавлено через 44 секунды #include <iostream> #include <stack> ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru