ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
}
// выделение памяти для символьной строки
// с представлением числа
char* strnumber = new char [n + 1];
int i = 0;
// формирование строкового представления записи числа
// путем извлечения значений из стека
try
{
while(true)
{
n = s.PopElement();
if(n < 10)
strnumber[i] = '0' + n;
else
strnumber[i] = 'A' + n - 10;
i++;
}
}
catch(ListException& )
{
// когда стек становится пустым,
// представление числа сформировано
strnumber[i] = '\0';
}
return strnumber;
}
Задача 2. Дана символьная строка, содержащая правильно
записанное арифметическое выражение. Написать функцию перевода
выражения в постфиксную форму. Постфиксной формой выражения
называется такая запись, в которой знак операции следует за операндами.
Эта запись не содержит скобок. Например, выражение a * b в
постфиксной форме имеет вид ab *, a * b+c преобразуется в ab * c +, a *
(b + c) – в abc + *.
Для решения задачи можно использовать следующий алгоритм.
Рассматриваются поочередно все символы строки. В стек записывается
открывающая скобка, и выражение далее анализируется посимвольно
слева направо.
1. Если встречается операнд (число или переменная), то он
помещается в очередь.
2. Если встречается открывающая скобка, то она заносится в стек.
3. Если встречается закрывающая скобка, то из стека извлекаются
находящиеся там знаки операций до ближайшей открывающей
163
Объектно-ориентированное программирование на С++
}
// выделение памяти для символьной строки
// с представлением числа
char* strnumber = new char [n + 1];
int i = 0;
// формирование строкового представления записи числа
// путем извлечения значений из стека
try
{
while(true)
{
n = s.PopElement();
if(n < 10)
strnumber[i] = '0' + n;
else
strnumber[i] = 'A' + n - 10;
i++;
}
}
catch(ListException& )
{
// когда стек становится пустым,
// представление числа сформировано
strnumber[i] = '\0';
}
return strnumber;
}
Задача 2. Дана символьная строка, содержащая правильно
записанное арифметическое выражение. Написать функцию перевода
выражения в постфиксную форму. Постфиксной формой выражения
называется такая запись, в которой знак операции следует за операндами.
Эта запись не содержит скобок. Например, выражение a * b в
постфиксной форме имеет вид ab *, a * b+c преобразуется в ab * c +, a *
(b + c) – в abc + *.
Для решения задачи можно использовать следующий алгоритм.
Рассматриваются поочередно все символы строки. В стек записывается
открывающая скобка, и выражение далее анализируется посимвольно
слева направо.
1. Если встречается операнд (число или переменная), то он
помещается в очередь.
2. Если встречается открывающая скобка, то она заносится в стек.
3. Если встречается закрывающая скобка, то из стека извлекаются
находящиеся там знаки операций до ближайшей открывающей
163
Страницы
- « первая
- ‹ предыдущая
- …
- 161
- 162
- 163
- 164
- 165
- …
- следующая ›
- последняя »
