ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
}
// выделение памяти для символьной строки
// с представлением числа
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
- …
- следующая ›
- последняя »