Практикум на ЭВМ (171, 1 семестр)

Новости

    • На следующем комп.занятии (24.10.2011, ауд.2406) будет проведена контрольная работа.
  • Пройти опрос

Задания

    1. Синтаксис (12.09.2011)
      1. Посчитать факториал числа n итерацией (в цикле).
      2. Посчитать факториал числа n рекурсивно (функция, вызывающая сама себя).
      3. Посчитать произведение двух целых чисел, используя только операции сложения и вычитания.
      4. Эффективно посчитать n-ое число Фибоначчи.
      5. Рассчитать значение формулы формулы x^4 + x^3 + x^2 + x + 1 за два умножения. "Красиво" напечатать.
      6. Посчитать число "счастливых билетов" (билет считается "счастливым", если сумма первых трёх цифр его номера равна сумме трёх последних).
    2. Сортировки
      1. Реализовать любые 2 сортировки массива.
      2. Реализовать быструю сортировку Хоара (qsort).
    3. Строки
      1. Посчитать длину строки
      2. Определить по входной фразе, является ли она палиндромом.
    4. Командная строка, файлы
      1. Реализовать программу head - печать первых n строк входного файла.
      2. Программа должна работать аналогично одноименной утилите Linux:
        • Программа имеет необязательный параметр - имя входного файла. Если параметр не указан, то чтение должно производиться из стандартного потока ввода.
        • Программе можно передать необязательный параметр "-n <число>" задающий количество строк для вывода. По умолчанию - 10.
        • Если на входе менее n строк, то выводится всё содержимое.
      3. Реализовать программу tail - печать последних n строк входного файла.
      4. Интерфейс программы аналогичен команде head
      5. Реализовать программу uniq - печать только таких строк входного файла, которые не повторяют предшествующую ей строку. (удаление последующих дубликатов строки)
      6. Программа должна работать аналогично одноименной утилите Linux:
        • Программа имеет необязательный параметр - имя входного файла. Если параметр не указан, то чтение должно производиться из стандартного потока ввода.
    5. Структуры данных, списки
      1. Реализовать односвязный список, со вставкой с сохранением порядка.
    6. Модульное программирование, DLL
      1. На примере реализации 3-х сортировок показать работу динамически-подключаемых библиотек.
    7. Битовая арифметика
      1. Вывести двоичное представление целого числа.
      2. float - форматированная печать числа с плавающей точкой (пример)
    8. Форматирование текста
    9. Реализовать форматированный вывод программы на языке C:
      • Программа подается на вход stdin, форматированный вариант выводится в stdout
      • Символ '{' увеличивает отступ на последующих строках, '}' - уменьшает на последующих или на той, на которой располагается, если он является первым значащим символом на этой строке.
      • Операторы в блоке должны иметь одинаковый отступ. Конец оператора можно определить по символам ";" или "}"
      • Если в оригинальной программе оператор написан на нескольких строках, и последующие строки расположены с положительным отступом, относительно первой, то относительный отступ должен быть сохранен.
      • Переразбиение на строки не производится.
      • Текст самой программы не должен изменяться при обработке самой программы.
    10. *Стеково-регистровый CLI калькулятор
    11. Разбор и вычисление арифметических выражений рекурсивным спуском.

Контрольная работа

Обязательные требования: разумность решения, хорошее форматирование исходного кода, наличие "шапки" файла. Задания следует положить в папку W:/sem1/test1/.

    1. Удалить из входного текста некоторую букву и вывести получившийся текст. Текст и буква вводятся с консоли.
    2. Два неотрицательных числа заданы в двоичной форме в массивах. Элементы обоих массивов — булевые (0, 1). Написать программу, которая определяет, какое число больше.
    3. Вывести на консоль все однострочные комментарии С++ (вида "// комментарий \n") из входного файла (вместе с символами "//"). До комментария в строке может быть значимый текст, его выводить не надо, строки без комментариев не выводить. Конец строки представляется символом \n, могут быть полезны функции fgetc и feof.

Успеваемость

2011-2012.SE.171

Материалы