0 / 0 / 0
Регистрация: 25.06.2009
Сообщений: 10
1

Динамические структуры данных

25.06.2009, 13:47. Показов 804. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в субботу экзамен а прога почему то не работает(((
вот условие - Дана последовательность, состоящая из символов англ букв и знаков "+" ";" "*" и парных круглых скобок. На основе стека или/и очереди, элементы в которых - натуральные числа, написать номера позиций пар открывающихся и закрывающихся скобок в порядке возрастания номеров открывающихся скобок. Последовательность завершать символом "=".
пример - последовательность A+(B*-P(x)*(A-M))=
ответ - 3 17; 8 10; 12 16;
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
program skobki;
uses crt;
      type mas= array [0..100] of integer;
      type List=^node;       
           node=record       
             info:char;      
             next:List;
           end;
 
var
L: list;      
sk1,sk2,dlina,j,i,n:integer;
e:real;
c:char;
A:mas;
 
procedure Form(elem:char;var L:List);
   begin
     if L<>nil then Form(elem,L^.next)
     else begin
        New(L); L^.info:=elem; L^.next:=nil;
     end;
   end;
 
procedure Print(L:List);
   begin
     while L<>nil do begin
       write(L^.info);
       L:=L^.next;
     end;
     writeln('<---');
     writeln;
   end;
 
procedure Skobk(L:List);
 
var  mesto:byte;
   begin
   mesto:=0;
     while L<>nil do
           begin
           mesto:=mesto+1;
           if L^.info='(' then
                          begin
                          A[mesto]:=1;
                          writeln('(',mesto,' ');
                          end;
 
           if L^.info=')' then
                          begin
                          A[mesto]:=2;
                          writeln(')',mesto,' ');
                          end;
           L:=L^.next;
           end;
     writeln('<---');
     writeln;
   end;
 
begin
clrscr;
writeln('vvedite posledovat:');
dlina:=0;
while (c<>'=') do
     begin
     c:=readkey;
     Form(c,L);
     write(c);
     dlina:=dlina+1;
     end;
writeln;
Print(L);
Skobk(L);
writeln(dlina);
writeln('*****');
for i:=0 to dlina do
    begin
    if (A[i]=1) then
       begin
       write(i,' ');
       A[i]:=0;
       for j:=dlina downto 0 do
           begin
           if (A[j]=2) then
              begin
              write(j,' ');
              A[j]:=0;
              break;
              end;
           end;
       writeln;
       end;
    end;
writeln;
writeln('******');
readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2009, 13:47
Ответы с готовыми решениями:

Динамические структуры данных. Организация данных в списковые структуры
Написать программу вставки нового элемента в список за некоторым заданным по- рядковым номером...

Динамические структуры данных
Даны две очереди целых чисел. Создать дек из элементов очередей следующим образом: записывать в...

динамические структуры данных
Прошу помочь в решении задачи.. Слейте два упорядоченных неповозрастанию списка в один (также...

Динамические структуры данных
Сорри но это опять я есть еще такая задача: Составить программу(на Паскале) которая вводит строку...

6
4117 / 996 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
25.06.2009, 13:50 2
емм... я извиняюсь конечно... но я не вижу то что проверить нужно... ни листинга, ни вложеных файлов, ни скрытых буковок... помоему вы что-то забыли...
хмм... появилось... странно...
0
0 / 0 / 0
Регистрация: 25.06.2009
Сообщений: 10
25.06.2009, 13:58  [ТС] 3
точнее она работает, но не совсем корректно.
когда вводиш - (()()) то не срабатывает почему то
0
4117 / 996 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
25.06.2009, 14:28 4
текс... так лень розбиратса... вам именно так нужно, или можно переделать?)

Добавлено через 13 минут 45 секунд
вот что у меня получилось... ето вся программа)
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
program skobki;
uses crt;
var
s:string;
i,j,n:integer;
begin
writeln('vvedite');
readln(s);
for i:=1 to length(s)-1 do begin
n:=1;
if s[i]='(' then begin
write(i,' ');
for j:=i+1 to length(s) do begin
  if s[j]='(' then begin
     n:=n+1;
  end
  else if s[j]=')' then begin
     n:=n-1;
  end;
  if n=0 then begin
     write(j,' ');
     n:=length(s);
  end;
end;
writeln;
end;
end;
readln;
end.
Добавлено через 1 минуту 43 секунды
она рабочая) чуть обработайте напильником, добавте как вам по интерфейсу больше нравитса) и думаю у вас будет так как вы хотите)
0
0 / 0 / 0
Регистрация: 25.06.2009
Сообщений: 10
25.06.2009, 15:07  [ТС] 5
спс))) но вид должен быть именно такой как я написал изначально))) если не трудно помогите а)))
0
4117 / 996 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
25.06.2009, 16:11 6
я бы с удоволчтвием но дел и так по горло(((
возьмите мою программу как алгоритм поиска скобок и всунте в нужную процедуру... там не так уж и много роботы, заодним и вникнете глубже...
0
0 / 0 / 0
Регистрация: 25.06.2009
Сообщений: 10
25.06.2009, 17:21  [ТС] 7
да что то не могу как раз понять))) вроде и так попробовал и эдак, еще хуже выходит))))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2009, 17:21
Помогаю со студенческими работами здесь

Динамические структуры данных
Добрый день! Помогите пожалуйста с решением данной задачи: Задание: Создать объект -...

Динамические структуры данных
нужна помощь в составление Алгоритма для задачи: Дана непустая последовательность...

Динамические структуры данных
условию такое: написать программу для задачи условие в архиве, наброски сделал, исправьте ошибке...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru