ПОСТРОЕНИЕ И АНАЛИЗ
АЛГОРИТМОВ
1. Чемпионат
мира по программированию под эгидой ACM.
1.1. Соревнования в интернете. Правила участия.
1.2. Задача, решение, тест. Правила оформления.
1.3. Командный и индивидуальный принципы соревнования
на олимпиадах.
2. Введение в
язык Си.
2.1. Создание консольного приложения в MICROSOFT
VISUAL C++ 6.0.
2.2. Программа HELLO WORLD!
2.3. Переменные и их объявления
2.4. Вычисление суммы двух чисел. Формат ввода-вывода.
2.5. Биты. Байты. Слова.
2.6. Оператор присваивания.
2.7. Условный оператор.
3. Задачи.
http://acm.timus.ru: 1000 (A
+ B Problem).
http://acm.sgu.ru:
100 (A + B).
1. Арифметические
и логические операции в языке Си.
1.1. Арифметические операции.
1.2. Логические операции.
1.3. Условный оператор и логические операции.
2. Системы
счисления: двоичная, восьмеричная, десятичная и шестнадцатеричная системы
счисления. Перевод чисел из одной системы счисления в другую.
3. Задачи.
http://www.topcoder.com/tc:
SRM 195 (Rounder), SRM 325 (SalaryCalculator).
1.
Операторы цикла: синтаксис и
семантика.
1.1.
Оператор for.
1.2.
Оператор while.
1.3.
Оператор do-while.
2. Многократный
ввод-вывод. Понятие однократного и многократного ввода-вывода. Чтение
данных до конца файла. Возвращаемое значение функции scanf.
3.
Форматированный ввод-вывод. Формат
целочисленных и вещественных данных.
4. Математические
функции. Библиотека <math.h>. Алгебраические и тригонометрические
функции. Функции округления. Вычисление степени числа. Константа .
5. Задачи
http://acm.uva.es/problemset:
113 (Сила криптографии), 408 (Однородный генератор), 10633 (На редкость
простая задача), 10683 (Десятичные часы), 10783 (Сумма нечетных чисел).
http://acm.timus.ru:
1068 (Sum).
http://www.topcoder.com/tc:
SRM 326 (AdditionCycles), SRM 343 (PersistentNumber), TCHS 29 (ReverseSums).
1. Массивы:
определение, инициализация, обработка. Строка как массив символов.
2. Элементарные
вычисления: набор задач.
3. Задачи
http://acm.uva.es/problemset:
591 (Коробка с кирпичами), 10035 (Простая арифметика), 10055 (Хашмат – смелый
воин), 10071 (Назад к школьной физике), 10300 (Экологическая премия), 10302
(Суммирование полиномов), 10370 (Больше среднего), 10499 (Земля праведности),
11172 (Операторы сравнения).
5. Задачи
http://acm.uva.es/problemset:
374 (Большой модуль), 10696 (f91), 10774 (Повторяющийся Иосиф), 10994 (Простое
сложение).
1. Шаблоны:
определение и использование.
2. Именованные
области. Оператор расширения видимости. Директива using.
3. Стандартная
библиотека шаблонов (STL). Алгоритмы. Контейнеры. Итераторы.
4. Векторы.
Конструкторы. Вставка-удаление элементов. Использование итераторов для доступа
к элементам.
5. Задачи.
http://www.topcoder.com/tc:
SRM 193 (SwimmingPool), SRM 194 (Soccer), SRM 212 (YahtzeeScore), SRM 217 (FuelConsumption),
SRM 253 (ObjectPacking), SRM 315 (RosePetals), SRM 322 (DerivativeSequence).
1. Наибольший
общий делитель. Наименьшее общее кратное. Методы вычисления, свойства.
2. Расширенный
алгоритм Евклида. Описание алгоритма. Примеры.
3. Диофантовы
уравнения. Решение уравнения ax +
by = c в целых неотрицательных числах. Теорема о существовании решения.
4. Обработка
строк. Библиотека <string.h>. Длина строки. Конкатенация и
копирование строк. Ввод-вывод строк при помощи функций gets и puts.
5. Задачи.
http://acm.uva.es/problemset:
10104 (Задача Евклида), 10407 (Простое деление), 10548 (Найти правильный
размен), 10673 (Игра с округлением вниз и вверх), 10717 (Монетный завод).
1. Числа
Фибоначчи. Рекурсивный и циклический методы вычисления. Рекурсивный метод
вычисления с запоминанием. Формула Бине. Свойства чисел Фибоначчи.
2. Класс
string. Обработка строк с помощью класса string: инициализация,
конкатенация, ввод-вывод, вставка, удаление, поиск. Обработка подстрок.
Потоковое чтение из строки.
3. Задачи
http://www.topcoder.com/tc:
SRM 178 (Простой
калькулятор), SRM 210 (Заглавная строка), SRM 246 (Склеивание), SRM 257 (Код замены), SRM 305 (Мультичтение).
(Продолжение
следует …)
ЛИТЕРАТУРА
1. А.В.Ахо, Д.Э.Хопкрофт, Д.Д.Ульман. Структуры данных
и алгоритмы. М., Вильямс, 2000.
2. А.В.Ахо, Д.Э.Хопкрофт, Д.Д.Ульман. Построение и
анализ вычислительных алгоритмов. М., Мир, 1979.
3. Н.Вирт. Алгоритмы + структуры данных = программы.
М., Мир, 1985.
4. Р.Грэхем, Д.Кнут, О.Паташник. Конкретная
математика, М. Мир, 1998.
5. Б.Н.Иванов, Дискретная математика. Алгоритмы и
программы. Москва, 2001.
6. Д.Кнут. Искусство Программирования. т.т. 1-3, М.,
Мир, 2001.
7. Ф.А.Новиков. Дискретная математика для
программистов. Учебник. С.Петербург, Питер, 2001.
8. Хэмди А.Таха. Введение в исследование операций. М.,
Вильямс, 2001.
9. Ф.Пpепаpата, М.Шеймос. Вычислительная геометpия:
Введение. - М.: Мир, 1989.
10. http://acm.timus.ru –
Уральский университет.
11. http://acm.uva.es/problemset,
http://acm.uva.es/contest – университет Вальядолид (Испания).
12. http://ace.delos.com/usacogate - USA
Computing Olympiad, США.
13. http://dl.gsu.unibel.by
- Беларусь.
14. http://acm.baylor.edu
- ACM соревнования.
15. http://www.uoi.kiev.ua
- Киев.
16. http://www.topcoder.com
– еженедельные соревнования, США
17. http://acm.sgu.ru
- Саратов
18. http://acm.zju.edu.cn - Китай
19. http://spoj.sphere.pl
- Польша