Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 27.05.2013
Сообщений: 37
1

Действия над ДСД, работа со стеком

27.05.2013, 23:10. Показов 1010. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста, кому не лень)
В программировании я практически ноль, что очень огорчает(

Есть программа, выполняет такие функции:
a.создание пустой ДСД
b.добавление нового элемента
c.удаление элемента
d.проверка ДСД на пустоту
e.поиск элемента по ключу
f.уничтожение ДСД
Нужно написать вот эти два задания для нее.

1.Проверить, является ли содержимое текстового файла правильной записью формулы следующего вида:
<формула>::=<терм>|<терм>+<формула>| <терм>-<формула>
<терм>::=<имя> | (<формула>) | [<формула>]|{<формула>}
<имя>::=x | y | z
(решение описать в виде функции или процедуры)

2. В текстовом файле f записана без ошибок формула следующего вида:
<формула>::=<цифра> | М(<формула>,<формула>) | m(<формула>,<формула>)
<цифра>::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
где M обозначает функцию max, а m – min.
Вычислить (как целое число) значение данной формулы.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2013, 23:10
Ответы с готовыми решениями:

Обход бинарных деревьев (действия со стеком)
Здравствуйте , вот начали изучать бинарные деревья . Немного какие операции происходят со стеком ,...

Арифметические действия над числами. Выбор номера действия. Перевод с Pascal
Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3...

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

Сделать программу , которая будет исполнять над стеком обязательные операции
Помогите с кодом на вот такое задание: Створити програму, що буде виконувати над стеком...

1
0 / 0 / 1
Регистрация: 27.05.2013
Сообщений: 37
02.06.2013, 15:08  [ТС] 2
Лучший ответ Сообщение было отмечено Selenia как решение

Решение

Никто не знает(?
На второе мне помогли написать код....
Delphi
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
/////////////////////////// Поиск M или m////////////////////////////
function Mm(var st:nodePtr): byte;
var el1,el2, kom: char; e1,e2,e3: byte;
begin
   readdelfromstack(st, e1, el1);
      if el1<>'f' then
      begin
        writeln('Mm error. Expected figure but found ',el1);
        DeleteSt(st);
        readln;
        halt
      end;
   readdelfromstack(st, e2, el2);
      if el2<>'f' then
      begin
        writeln('Mm error. Expected figure but found ',el2);
        DeleteSt(st);
        readln;
        halt
      end;
   readdelfromstack(st, e3, kom);
      if Upcase(kom)<>'M' then
      begin
      writeln('Mm error. Expected M or m but found ',kom);
      DeleteSt(st);
      readln;
      halt
      end;
 
   Mm:=e1;
   case kom of
     'M': if e2 > e1 then Mm:=e2;
     'm': if e2 < e1 then Mm:=e2;
   end;
end;
 
////////////////////////// Формула для вычисления ///////////////////////////////
procedure formula(var f: TextFile; var st: nodePtr; var re: byte);
var ch: char; re1, re2: byte;
begin
    ch :=' ';
    while not eof(f) and (ch=' ') do read(f,ch);
    if Upcase(ch)='M' then
    begin
       addtostack(0, ch, st);
 
       ch :=' ';
       while not eof(f) and (ch=' ') do read(f,ch);
       if ch<>'(' then
       begin
        ShowMessage('expected ( but found ' +ch);
        clearstack(st);
       end;
 
       formula(f, st, re1);
       addtostack(re1, 'f', st);
 
       ch :=' ';
       while not eof(f) and (ch=' ') do read(f,ch);
       if ch<>',' then
       begin
        ShowMessage('expected , but found '+ch);
        clearstack(st);
       end;
 
       formula(f, st, re2);
       addtostack(re2, 'f', st);
 
       ch :=' ';
       while not eof(f) and (ch=' ') do read(f,ch);
       if ch<>')' then
       begin
        ShowMessage('expected ) but found "'+ch+'"');
        clearstack(st);
       end;
 
       re := Mm(st);
   end
   else
   if ch in ['0'..'9'] then
    re:=Ord(ch)-Ord('0')
   else
   begin
    ShowMessage('expected formula but found "'+ch+'"');
    clearstack(st);
   end;
end;
0
02.06.2013, 15:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2013, 15:08
Помогаю со студенческими работами здесь

Действия над массивами
Здесь нет вопроса действий и операций над элементами, тут вопрос о возможных действия и операциях...

Действия над матрицами
здравствуйте, помогите пожалуйста реализовать действия над матрицами:1) есть матрица и нужно...

Действия над матрицами
Найти сумму произведений не нулевых цифр элементов каждого столбца!

Действия над матрицей
Здравствуйте. Подскажите, пожалуйста. Например, дана матрица 4 на 3. Я хочу из каждого элемента...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru