С клавиатуры вводятся имя исходного файла и имя файла для хранения результата. Необходимо при помоши функции поиска файлов убедиться в существовании исходного файла и отсутствии результирующего. Если исходный файл отсутствует, вылается предупреждение, и выполнение останавливается. Если результирующий файл уже присутствует, выдается предупреждение, и прежнее содержимое файла перекрывается.
После проверки необходимо открыть исходный файл, прочитать его блоками по 256 байт, зашифровать при помощи своей фамилии и зашифрованные данные сохранить в результирующем файле. Для шифрования использовать функцию ХОR для соответствующих байтов фамилии и данных
При помощи анализа цепочек выяснить, какой из файлов корневого каталога занимает наибольшее число кластеров. Имя этого файла показать на экране.
Создать двоичное дерево, хранящее числа. Каждый элемент дерева должен хранить число и "левую" и "правую" ссылки на нижестоящие элементы. Необходимо реализовать алгоритмы добавления числа в двоичное дерево и удаления числа из него. Пользователю должны быть доступны следующие функции: добавить число, удалить число, очистить дерево, показать содержимое дерева на экране. При выводе на экран показывать дерево в виде строки вида: содержимое родителя (содержимое левой ветви, содержимое правой ветви); для каждой из ветвей функция вывода должна быть вызвана рекурсивно.
Перекрыть прерывание клавиатуры и сделать так, чтобы вместо каждой введённой цифры вводилось две. Например, вместо "1" получалось "11".
Запрограммировать клавиатурный шпион. Данная программа должна накапливать у себя в памяти вводимые пользователем символы и с заданной периодичностью (например 20 с.) сохранять их в файл spy.txt. Перехватываемые прерывания – клавиатура и таймер. Должна быть обязательная проверка занятости DOS и данные должны сохраняться только когда система свободна. Должны быть решены проблемы повторного вхождения в прерывания DOS. Должна быть реализована возможность корректного удаления обработчика (допустимо не удалять резидент полностью, а заменять обработчик заглушкой). Должна также выполняться проверка повторной установки (предлагается использовать при помощи мультиплексного прерывания).
Написать программу, которая создает окно с собственными курсором и иконкой. В главное меню добавить подменю с двумя пунктами Start и Stop. При нажатии на пункт меню Start в окне должна появиться движущаяся по середине окна надпись. После этого выбор пункта меню Stop должно приостанавливать движение надписи, а пункта Start – возобновлять. Для реализации движения использовать обработчик сообщения WM_PAINT и таймер.
Написать программу, которая создает окно с двумя элементами управления ListBox, одним Edit и четырьмя Button (Add, Clear, ToRight и Delete). При нажатии на кнопку Add текст из Edit должен добавляться в первый ListBox, если такого текста там еще нет (необходимо выполнить проверку). Нажатие кнопки Clear очищает оба ListBox-а. Нажатие кнопки ToRight копирует выделенную строку из первого ListBox во второй (если там еще нет такой строки). Нажатие кнопки Delete удаляет выделенные строки в каждом из ListBox-ов.
Написать программу, которая создает окно с двумя элементами управления типа самоотрисовывающейся кнопки (OWNERDRAW), для каждой из которых должен быть задан какой-нибудь рисунок. При нажатии на первую из них в окне выводится рисунок, состоящие не менее чем из двадцати графических примитивов (линия, дуга, полигон, прямоугольник, эллипс – каждый из перечисленных примитивов должен быть использован хотя бы два раза). Вторая из кнопок должна стирать данный рисунок.
В графическом редакторе сделать несколько (например четыре) изображений движущегося объекта небольшого размера (например 32×32 пикселя). Реализовать поочередное отображение их в заданной позиции в окне. При щелчке "мышью" начинается движение объекта из текущей позиции в позицию указателя "мыши" с поочередной сменой изображений для имитации фаз движения. При отрисовке используются "теневые" контексты.
Написать две программы, каждая из которых создает окно. На первом из них должны быть созданы две группы RadioButton. В первой из них имеется выбор из трех цветов: красный, синий, зеленый. Во второй – из четырех типов примитивов: ромб, квадрат, круг, звезда. Также на первом окне должен быть создан Checkbox c надписью Draw. Информация об изменениях состояния данных Checkbox и RadioButtons должна передаваться во второе окно. При щелчке мышкой по второму окну проверяется переданная информация о состоянии CheckBox. Если он не выбран, ничего не происходит; если он выбран, то в точке щелчка мышки рисуется выбранный во второй группе RadioButtons примитив цветом, выбранным в первой из групп.
Должны быть реализованы три потока, каждый из которых осуществляет передвижение собственной надписи по главному окну. Все надписи должны быть различны и двигаться с разной скоростью.
На главном окне необходимо создать Edit каждый из трёх поток должен пытаться установить туда соответствующий текст: String1, String2, String3. Реализовать синхронизацию доступа через Mutex, а потом ерез Semaphore.