
- •Int main (int argv, char * argc[])
- •Int main (int argv, char * argc[]);
- •Void func1 ( a& a );
- •Void func2 ( a a );
- •Void swap (int a, int b)
- •Void swap (int &a, int &b)
- •Int Year;
- •Int Month;
- •Создание и уничтожение объектов в c#. Интерфейс iDisposable и освобождение ресурсов.
- •Int m_nYear;
- •Int m_nMonth;
- •Int m_nDay;
- •Inline int even(int X)
- •System.Collections.Generic.IEqualityComparer(Of t)
- •Public:
- •Virtual int GetHashCode()
- •Ассоциативные и последовательные контейнеры stl. Понятие итератора. Общие свойства контейнеров. Особенности и применение каждого из контейнеров.
- •// Do what you need with element using *I ;
- •Vint v1, v2(100);
- •Vint v3(v2.Begin(), --v2.End());
- •Sort(V.Begin(), V.End());
- •Setstr s, s2;
- •Использование контейнеров stl. Методы резервирования памяти контейнерами stl. Требования к элементам контейнеров.
- •C.Insert(s);
- •Обобщенные контейнеры .Net. Интерфейс iEnumerable и оператор foreach. Сравнение обобщенных контейнеров и ArrayList.
- •IEnumerable - интерфейс
- •Int m_nCount;
- •Int sprintf(buffer, format-string[, argument...]); char *buffer;
- •Язык регулярных выражений. Классы символов, исчислители, последовательности и несимвольные подстановки. Валидация email адреса при помощи регулярных выражений.
- •If (rx.IsMatch(testString))
- •Язык регулярных выражений. Классы символов, исчислители, альтернативы и подстановки. Применение регулярных выражений для изменения формата даты.
- •If (rx.IsMatch(testString))
- •Язык регулярных выражений. Классы символов, исчислители, альтернативы и последовательности. Выбор всех атрибутов href из html текста.
- •If (rx.IsMatch(testString))
- •Обработка исключений. Правила перехвата исключений. Назначение системы обработки исключений. Для чего система обработки исключений не предназначена.
- •Int operator / (cMyClass o, int I) {
- •Void main() {
- •Наследование, иерархии классов и обобщенная обработка данных. Чистый полиморфизм (полиморфизм виртуальных методов). Интерфейсы и абстрактные классы.
- •Int m_nCount;};
- •Int m_nCount;
- •Int m_nCount;
- •Int m_nCount;
- •Virtual string Iam(){return "furniture";}
- •Рекурсия. Рекуррентные структуры данных и рекурсивные алгоритмы. Алгоритм просмотра дерева каталогов файловой структуры.
- •Рекуррентное определение выражений. Алгоритм анализа и вычисления выражений (программа ”калькулятор”).
Рекуррентное определение выражений. Алгоритм анализа и вычисления выражений (программа ”калькулятор”).
Рекуррентное соотношение – это рекурсивная функция с целочисленными значениями. Значение любой такой функции можно определить, вычисляя все ее значения начиная с наименьшего, используя на каждом шаге ранее вычисленные значения для подсчета текущего значения.
Рекуррентные выражения используются, в частности, для определения сложности рекурсивных вычислений.
Калькулятор анализирует и вычисляет выражения методом рекурсивного спуска. Этот алгоритм лежит в основе работы многих компиляторов и, разобравшись с ним, вы лучше поймете как строятся выражения в С++. В нем можно задавать выражения типа x=y=5; x=x+(6/17+2.5)*y; l=2*pi*x и т.д. Выражение заканчивается с окончанием строки или символом ‘;’. Увидев ‘;’ или конец строки калькулятор распечатает результат, а увидев новое имя заведет соответствующую переменную. Кроме того, в нем сразу определены две константы pi и e.
Прежде чем строить программу, анализирующую выражения, необходимо дать формальное определение выражений, подлежащих анализу. Для применения алгоритма рекурсивного спуска наиболее подходящим является рекурсивное определение:
Выражение:
Терм + выражение или
Терм - выражение или
Терм
Терм: атом / терм или
атом * терм или
атом
Атом: Число или
Имя или
Имя = Выражение или
- атом или
(выражение) или
Раскрывая это определение обычным языком можно сказать, что выражение может состоять из нескольких слагаемых (термов). Терм может состоять из нескольких сомножителей (атомов). Атом — это число, переменная, выражение присваивания, выражение с унарным минусом или выражение в скобках. Рекурсия определения заключается в том, что каждое понятие определяется через себя, а атом определяется еще и через выражение.
Анализ программы можно начать с функции анализа выражений (Expr). Из нее сразу станет ясно, как определение порождает алгоритм. Имейте ввиду, что программа сначала читает первый элемент (token) выражения (это делается в функции main).
Рекурсией в программировании называется вызов функцией самой себя прямо (в теле функции расположен вызов себя) или косвенно (функция вызывает функцию, которая вызывает функцию, которая… и в одной из этих функций расположен вызов самой первой функции!!!).