Форум программистов, компьютерный форум CyberForum.ru

Из турбо паскаля в С++ перевести код - стек - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Одномерные массивы. http://www.cyberforum.ru/cpp-beginners/thread276078.html
Помогите пожалуйста! На завтра нужна прога в С++, а у меня ничего не выходит=(.Известны данные о численности населения (в млн жителей) и площади (в млн кв.км) 10 государств. Определить общую численность государств, чья площадь превышает 5 000 000 кв.км.
C++ пароль подскажите советом : я написал программу проверяющую правильность пассворда, какой код нужно дописать чтобы пассворд не зависел от регистра(то есть если я написал GOVNO, программа вывела бы hi )? bool b=false; char pas=""; int d=1; do{cout<< "vvedite parol\n"; cin>> pas; char s="govno"; http://www.cyberforum.ru/cpp-beginners/thread276061.html
АЛГОРИТМ ДЕЙКСТРА C++
Доброго времени суток всем! У меня вопрос. Написала программку для нахождения кратчайшего пути (алгоритм Дейкстра), но мне надо её как то по приличней оформить, т.е. можно как то визуализовать результат так, чтобы, к примеру, после того как прога подсчитает результат, рисовался бы граф и этот самый короткий путь, который посчитала программа? Как это сделать и с чего начать? Вот код работы :...
Текстовое выражение C++
Разбор строкового выражения. Алгоритм Бауэра и Замельзона. #include <stdio.h> #include <math.h> #include <iostream> using namespace std; char stack_z; double stack_c; int tos_z=0;
Visual C++ чистый MFC http://www.cyberforum.ru/cpp-beginners/thread276030.html
Добрый вечер Пользуюсь компилятором Visual Studio 2010 Есть задача : создать проект использующий библиотеку MFC (тобишь никаких .NET и CLR) Но визардом пользоваться сильно не хочется мне кажется он делает много лишнего. Не подскажете ли новичку что мне нужно добавить в пустой проект Win32 ?
C++ перегрузка operator<< помогите отгадать в чет ошибка class MCL{ private: int x,y; public: friend ostream& operator<<(ostream &s, MCL &c); }; ostream& operator<<(ostream &s, MCL &c) { подробнее

Показать сообщение отдельно
Нотка
0 / 0 / 0
Регистрация: 14.10.2010
Сообщений: 18
13.04.2011, 23:37     Из турбо паскаля в С++ перевести код - стек
Задача написана на Турбо паскале. Проблема состоит в том, что она должны быть на С++. К сожалению, на данный момент это не представляется возможным сделать самой. Очень прошу помочь.

Использовать стек для решения следующей задачи. В текстовом файле записана без ошибок формула следующего вида:

<формула>:=<цифра>|M(<формула>,<формула>)| m(<формула>,<формула>)
<цифра>:=0|1|2|3|4|5|6|7|8|9


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
program StackSample;
type
  FileType= File of Char;
var
  Source: FileType;
function formula( var t: FileType ): integer;
type
  TypeOfElem= Char;
  Assoc= ^ElementOfStack;
  ElementOfStack= record
    Elem: TypeOfElem;
    NextElem: Pointer
  end;
  Stack= Assoc;
var
  S: Stack;
  c, op, x, y: char;
procedure CreateStack ( var StackHead: Stack);
begin
  StackHead:= nil
end;
function StackIsClear( var StackHead: Stack ): Boolean;
begin
  StackIsClear:= ( StackHead= nil )
end;
procedure IncludeInStack( var StackHead: Stack; NewElem: TypeOfElem );
var
  ServiceVar: Stack;
begin
  {создание нового элемента}
  new( ServiceVar );
  ServiceVar^.Elem:= NewElem;
  {созданный элемент сделать вершиной стека}
  ServiceVar^.NextElem:= StackHead;
  StackHead:= ServiceVar
end;
procedure SelectFromStack( var StackHead: Stack; var Result: TypeOfElem );
var
  ServiceVar: Assoc;
begin
  if StackHead <> nil then begin
    {выбор элемента из вершины}
    Result:= StackHead^.Elem;
    {запоминание ссылки на старую вершину}
    ServiceVar:= StackHead;
    {исключение из стека и уничтожение элемента}
    StackHead:= StackHead^.NextElem;
    dispose( ServiceVar )
  end
end;
begin
  reset( t );
  CreateStack( S );
  while not eof( t ) do begin
    read(t, c);
    {обработка очередной литеры текста (литеры в•љ(в•© и в•љ,в•© игнорируются)}
    if c in ['0'..'9','M','m'] then IncludeInStack( S, c)
      else
        if c= ')' then begin    {конец формулы вида p(x, y)}
        {в конце стека находится тройка op x y, она удаляется
из стека, выполняется операция op и результат
         записывается в стек}
          SelectFromStack( S, y );
          SelectFromStack( S, x );
          SelectFromStack( S, op );
          case op of
            'M'{max}: if x > y then c:= x else c:= y;
            'm'{min}: if x < y then c:= x else c:= y
          end;
          IncludeInStack( S, c )
        end
  end; {of while}
  {в стеке осталась одна цифра в€љ значение всей формулы; цифра переводится в целое число}
  SelectFromStack( S, c );
  formula:= ord( c ) - ord( '0' )
end;
begin
  assign( Source, 'c:tempsource.txt' );
  writeln( Formula( Source ) );
end.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru