Аудиозаписи лекций доступны по ссылке
Студент: Капаца Елена, helen@kapatsa.com
1. Github. Google C++ Style Guide
- Зарегистрироваться на github.сom. Сделать fork репозитория. Запушить в свой репозиторий исходник c программой «Hello, World!».
- Ознакомиться с Google C++ Style Guide
2. char-переполнение
- Сделать переполнение по типу char и вывести в терминал и число и символ.
- Дополнительно: переполнение по типу double.
3. Цикл в цикле
- Сделать цикл в цикле в цикле. For в while в do-while
- Использовать ветвление switch-case. В switch передавать цифру, на выходе получать первую букву цифры.
4. Рекурсивная функции
- Разработать программу, использующую рекурсивную функцию. Программа должна суммировать числа даты вашего день рождения.
- Реализовать функцию, создающую 10 текстовых файлов и заполняющая каждый из них по 1000 случайных цифр
5. Массив из 1000 элементов
- Сделать программу, которая заполняет массив char размером 1000. Заполнить массив случайными символами (не цифрами) и вывести в консоль.
- Реализовать программу, которая определяет частоту используемых символов. Текст должен браться из файла. Размер файла до 10000 символов.
6. Goto, вычитывание из файла
- Написать “цикл” выводящий от 1 до 100 в консоль, используя goto
- Реализовать программу, вычитывающую текст из файла (до 100000 символов) и считающую размер считанных данных
- Дополнительно: Написать функцию, в которой вы используете все ключевые слова Си.
7. Телефонный справочник
- Сделать программу «Телефонный справочник». Программа должна хранить связку «имя - телефон» с помощью структуры. Программа должна работать в двух режимах: Добавление новых записей с консоли. Хранение записей в файле.
- Выводить все записи справочника.
- Дополнительно: 3-ий режим поиска существующей записи
8. Менеджер задач на базе стека
- Создать менеджер задач (имя, время выполнения, приоритет):
- Объявить стэк / очередь
- Реализовать создание задачи (push)
- Реализовать удаление задачи (pop)
- Реализовать отображение задач (peek)
- Реализовать ввод задачи с консоли
- Реализовать автоматическую генерацию задачи
- Реализовать уведомления о выполнении задачи
- Уведомление о количестве оставшихся з.
- Реализовать погружение задачи в сон на введенное / сгенерированное время выполнения
- Реализовать последующее автоудаление задачи
- Реализовать отображение задач по приоритету (во время выполнения)
- Реализовать режим редактирования стека / очереди
- Реализовать выполнение задачи (ожидание в течение введенного / сгенерированного времени)
- Дополнительно: критическая з. вне очереди
9. Сортировка
- Генерировать массив int arr[100000] случайных чисел
- Использовать три вида сортировки (быстрая сортировка, сортировка «пузырьком», сортировка поиском минимума)
- Подавать 100 разных массивов
- По окончании подсчета выводить информацию о статистике в консоль:
- Подсчет и вывод среднего времени
- Вывод наименьшего и максимального времени выполнения
11. Менеджер страничной памяти
- Реализовать оперирование памятью с использованием страничной модели памяти. Максимум доступной памяти - 10 Мб. Минимальный размер страницы - 1 Кб.
- Реализовать выделение -> удаление с.
- Реализовать объединение с.
- Дополнительно: утряска (объединение свободного места).
14. Крестики-нолики
- Использовать классы
- Реализовать случайный режим NPC (100% случайные ходы)
- Учесть случай, когда не хватает последнего символа до окончания игры
- Реализовать режим "2 игрока"
- Дополнительно: Реализовать режим "нормальный ИИ"
18. Морской бой
- Расстановка кораблей (1,2,3,4 палубы; направление корабля вниз-вверх) и проверка на правильность их расположения;
- Переход в режим боя;
- Осуществление самого процесса боя с фиксацией окончания боя и победы / поражения;
- Дополнительно: автоматическая расстановка кораблей
- Дополнительно: Режим Игрок-ИИ
24. Построение графика
- Создать скрипт, генерирующий датасет.csv из 1000 пар x - y;
- Сделать программу, строящую график по данным из файла. Файл содержит до 1000 записей в формате [х у]: 102 1.6; 98 1.59; 99 1.602.
- Дополнительно: Изменение масштаба по х и по у (c перерисовкой и выбором диапазона).
- Дополнительно: Подписи координат к точкам через каждые 100 выведенных точек.
- Дополнительно: Расчет минимального и максимального значения, подписи к ним (выделить цветом).
28. Генератор паролей
- Реализовать настройку длины пароля
- Реализовать настройку наличия / отсутствия спецсимволов
- Реализовать настройку наличия / отсутствия цифр
- Реализовать хранение сгенерированного в файле вида "passwordname: password"