Архив‎ > ‎Осень 2012‎ > ‎

Практикум на ЭВМ (171 группа, первый семестр)

Задания

14.09.2012
  1. Факториал - итерацией.
  2. Факториал - рекурсией.
  3. Умножение двух чисел без использования операции умножения.
  4. Возведение числа в целочисленную степень.
  5. Проверить, является ли строка палиндромом: словом или текстом, одинаково читающимся во всех направлениях. (Например: "I prefer Pi.")
17.09.2012
  1. Найти количество вхождений подстроки S1 в строке S.
21.09.2012 (срок - 05.10.2012)
  1. Проверить строку, содержит ли она правильную скобочную последовательность.
    Например, "(()())" и "if (1+(3+4)>5)" - содержат, а "()(", "(()))(" - нет.
  2. Посчитать сумму чётных чисел Фибоначчи не превосходящих N.
  3. Количество путей на целочисленной решётке из (0,0) в (I,J)
  4. Посчитать сумму простых чисел не превосходящих N.
  5. Найти наименьшее общее кратное чисел 1..N.
24.09.2012  (срок - 12.10.2012) 
  1. Вывести битовое представление целого числа N с использованием битовой арифметики:
    n >> i - побитовый сдвиг вправо числа n на i бит
    n << i - побитовый сдвиг влево числа n на i бит
    n & a - побитовое умножение двух чисел (логическое "И" над каждым битом)
    n | a - побитовое сложение двух чисел (логическое "ИЛИ" над каждым битом)
    n ^ a - побитовое "исключающее ИЛИ" 
    ~n - побитовое отрицание
  2. Вывести графическое представление  числа с плавающей точкой (float):
    • Стандарт IEEE 754
    • Одинарная точность
    • Для приведения из float к int можно использовать union (объединение) или приведение типа через (void*)
    • Пример печати
  3. Посчитать корень числа с плавающей точкой (float или double) с адекватной точностью.
01.10.2012 (срок - 22.10.2012)
  1. Реализовать сортировку массива чисел (любую), используя динамическое выделение памяти по массив.
  2. Использовать уязвимость "переполнения буфера" в функции gets
    • Программа должна считывать строку функцией gets
    • В программе есть операторы printf("No") и printf("Yes")
    • Если нет переполнения буфера, то программа всегда должна печатать "No"
    • При специально подобранном входе, вызывающем переполнение буфера, выполнение программы должно изменяться так, чтобы напечаталось "Yes"
    • После печати сообщения "Yes" допустимо некорректное завершение программы
    • Вход может зависеть от используемого компилятора и ОС

Требования

  • Красивое форматирование кода и комментарии, при необходимости.
  • Наличие заголовка программы - комментария с авторством и идентификатором программы.

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


Comments