Учебное пособие. – Самара: Изд-во Самар. гос. аэрокосм. ун-та,
2011. – 80 с. ISBN 978-5-7883-0832-6
Пособие ориентировано на обеспечение сквозного индивидуального
обучения студентов и школьников программированию. Рассмотрены
основные алгоритмы и приемы программирования. Даны рекомендации по
алгоритмизации и программированию при решении олимпиадных задач.
Рассмотрены некоторые методы цифровой геометрии и теории графов.
Пособие в первую очередь ориентировано на школьников старших
классов, интересующихся программированием, и на студентов младших
курсов специальностей «Прикладная математика и информатика»,
«Автоматизированные системы обработки информации и управления».
Содержание
Предисловие
Целочисленная арифметика
Операции с целыми числами
Задача «Рубли и копейки»
Задача «Часы»
Задача «Сумма цифр»
Задача «Количество цифр»
Задача «Високосный год»
Задача «Дом»
Наибольший общий делитель (алгоритм Евклида)
Задача «Банки»
Вещественные числа
Основные математические функции
Возведение в степень
Условный оператор
Максимальное из двух чисел
Максимальное из трех чисел
Вычисление площадей сложных фигур
Текстовые файлы
Одномерные массивы
Описание в программе
Ввод и вывод массивов
Популярные алгоритмы работы с массивами
Сумма элементов массива
Количество положительных элементов в массиве
Поиск максимального (минимального) элемента массива
Сортировка простым обменом (метод пузырька)
Быстрая сортировка
Поиск данных
Линейный поиск
Бинарный поиск
Символьные строки
Общие сведения
Стандартные функции для работы со строками
Сравнение строк
Несколько полезных приемов обработки строк
Убрать из строки пробелы в начале строки
Убрать из строки пробелы в конце строки
Убрать из строки все пробелы
Убрать из строки «лишние» пробелы
Подсчитать количество цифр в натуральном числе
Заменить фрагмент R в строке S на фрагмент T
Строка палиндром
Выделение слов из строки
Множества
Множество символов в строке
Вывод элементов множества на экран
Ввод множества символов
Количество различных символов в строке
Двухмерные массивы (матрицы)
Описание матрицы
Ввод элементов матрицы
Вывод элементов матрицы
Основные алгоритмы работы с матрицами
Сумма элементов матрицы
Сумма главной диагонали квадратной матрицы
Сумма побочной диагонали квадратной матрицы
Транспонирование матриц
Транспонирование матрицы в том же массиве (транспонирование квадратной матрицы)
Умножение матриц
Работа с фрагментами матриц
Динамическое программирование
Цифровая геометрия
Основные отношения
Взамное расположение точки и прямой
Площадь многоугольника
Выпуклая оболочка
Алгоритмы на графах
Алгоритм Флойда
Задачи олимпиад
Задачи с сайта contest.samara.ru
Тортики – 1
Высокие горы
Задача «На болоте» (алгоритм Дейкстры)
Задача «На болоте» (алгоритм Флойда)
Задачи с сайта ACM.TIMUS.RU
Задача «Ниточка» (номер на сайте 1020)
Демократия в опасности (номер на сайте 1025)
Один в поле воин (номер на сайте 1197)
Задача «Выборы» (номер на сайте 1263)
Белый тезис (номер на сайте 1335)
Проблема Бен Бецалеля (номер на сайте 1336)
Ферма (номер на сайте 1349)
Развод семи гномов (номер на сайте 1243)
Освещение в Хогвартсе (номер на сайте 1448)
Гиперпереход ( номер на сайте 1296)
Драгоценные камни (Stone pile 1005)
Процедуры и функции
Как написать хорошую программу
Рекурсивные процедуры
n- я степень числа
Перевод десятичного числа в двоичную систему
n-е число Фибоначчи
Алгоритм Евклида (наибольший общий делитель)
Список рекомендуемой литературы
Предисловие
Целочисленная арифметика
Операции с целыми числами
Задача «Рубли и копейки»
Задача «Часы»
Задача «Сумма цифр»
Задача «Количество цифр»
Задача «Високосный год»
Задача «Дом»
Наибольший общий делитель (алгоритм Евклида)
Задача «Банки»
Вещественные числа
Основные математические функции
Возведение в степень
Условный оператор
Максимальное из двух чисел
Максимальное из трех чисел
Вычисление площадей сложных фигур
Текстовые файлы
Одномерные массивы
Описание в программе
Ввод и вывод массивов
Популярные алгоритмы работы с массивами
Сумма элементов массива
Количество положительных элементов в массиве
Поиск максимального (минимального) элемента массива
Сортировка простым обменом (метод пузырька)
Быстрая сортировка
Поиск данных
Линейный поиск
Бинарный поиск
Символьные строки
Общие сведения
Стандартные функции для работы со строками
Сравнение строк
Несколько полезных приемов обработки строк
Убрать из строки пробелы в начале строки
Убрать из строки пробелы в конце строки
Убрать из строки все пробелы
Убрать из строки «лишние» пробелы
Подсчитать количество цифр в натуральном числе
Заменить фрагмент R в строке S на фрагмент T
Строка палиндром
Выделение слов из строки
Множества
Множество символов в строке
Вывод элементов множества на экран
Ввод множества символов
Количество различных символов в строке
Двухмерные массивы (матрицы)
Описание матрицы
Ввод элементов матрицы
Вывод элементов матрицы
Основные алгоритмы работы с матрицами
Сумма элементов матрицы
Сумма главной диагонали квадратной матрицы
Сумма побочной диагонали квадратной матрицы
Транспонирование матриц
Транспонирование матрицы в том же массиве (транспонирование квадратной матрицы)
Умножение матриц
Работа с фрагментами матриц
Динамическое программирование
Цифровая геометрия
Основные отношения
Взамное расположение точки и прямой
Площадь многоугольника
Выпуклая оболочка
Алгоритмы на графах
Алгоритм Флойда
Задачи олимпиад
Задачи с сайта contest.samara.ru
Тортики – 1
Высокие горы
Задача «На болоте» (алгоритм Дейкстры)
Задача «На болоте» (алгоритм Флойда)
Задачи с сайта ACM.TIMUS.RU
Задача «Ниточка» (номер на сайте 1020)
Демократия в опасности (номер на сайте 1025)
Один в поле воин (номер на сайте 1197)
Задача «Выборы» (номер на сайте 1263)
Белый тезис (номер на сайте 1335)
Проблема Бен Бецалеля (номер на сайте 1336)
Ферма (номер на сайте 1349)
Развод семи гномов (номер на сайте 1243)
Освещение в Хогвартсе (номер на сайте 1448)
Гиперпереход ( номер на сайте 1296)
Драгоценные камни (Stone pile 1005)
Процедуры и функции
Как написать хорошую программу
Рекурсивные процедуры
n- я степень числа
Перевод десятичного числа в двоичную систему
n-е число Фибоначчи
Алгоритм Евклида (наибольший общий делитель)
Список рекомендуемой литературы