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