Задачи для экзамена по теме
Программирование на языке C#

Во всех задачах надо реализовать оконную программу, используя среду разработки Microsoft.NET Visual C#.

  1. Реализовать стековый калькулятор, работающий с вещественными числами. Калькулятор должен выполнять арифметические действия и вычислять математические функции. Действия выполняются над элементами в вершине стека, эти элементы удаляются из стека, а на их место кладется результат. Действиям соответствуют клавиши калькулятора. Имеется 2 текстовых поля: поле ввода и поле результата, которое всегда высвечивает вершину стека. Кроме того, текущая глубина и содержимое стека изображаются в нижней части окна.
  2. Реализовать калькулятор произвольного выражения. В окне есть 2 текстовых поля, в верхнем поле вводится выражение, включающая целые и вещественные (в форме с фиксированной точкой) константы, знаки арифметических операций, наиболее популярные математические функции и круглые скобки. В нижнем поле печатается результат вычисления выражения. После редактирования выражения его вычисление производится либо по нажатию клавиши "Enter", либо по нажатию мышкой на кнопку "Evaluate", которая должна присутствовать в окне приложения. Для разбора выражения можно использовать либо рекурсивный алгоритм, либо алгоритм разбора со стеком.
  3. Задача повышенной сложности, можно решать вдвоем. Та же задача, что и в предыдущем случае, только выражение включает переменную x, а вместо вычисления значения выражения программа должна рисовать график функции y=f(x). Окно должно также включать 4 текстовых поля, задающих диапазоны измения значений x и y, соответствующие границам окна. Программа должна нарисовать также оси координат и координатную сетку.
  4. Реализовать сетевую программу "Chat": программа слушает заданный порт (должно быть текстовое поле "Port: xxxx" и кнопка "Listen", а также текстовое поле "Status: xxxx", возможные значения "Listening", "Connected" и т.п.), а также может подсоединиться к удаленной программе (для этого есть текстовые поля IP и Port удаленного партнера, а также кнопка "Connect"). Кроме того, должно быть 2 многостроковых текстовых поля, в верхнем отображаются строки, которые печатаются на клавиатуре данной машины и пересылаются удаленному партнеру (строка посылается по нажатию "Enter" или по нажатию на кнопку "Send"), в нижнем отображаются строки, полученные от удаленного партнера. Еще должна быть кнопки "Disconnect" и "Cancel listening".
  5. Реализовать игру Lines (см. реализацию на языке Java).
  6. Реализовать игру 15 (см. реализацию на языке Java).