Содержание
-
Методы программирования
Васильев Николай Петрович, к.т.н., доцент Доцент каф. «Компьютерные системы и технологии» (№12) НИЯУ МИФИ
-
Цель курса
Изучение и практическое освоение современных методов программирования: Организация данных Построение и исследование алгоритмов Разработка программного обеспечения (ПО)
-
Задачи курса
Язык программирования Си (инструмент для практической реализации) Среда разработки MS Visual Studio 2010 Типы данных (основные, абстрактные) Структуры данных (статические, динамические): Статические массивы Динамические массивы Списки (различные), очередь, стек, дека Деревья Графы Построение и анализ алгоритмов Сложность алгоритмов Сортировка и поиск Хеширование Генерация псевдослучайных чисел Анализ алгоритов
-
Литература
Дональд Кнут. Искусство программирования (в 3-х томах), последнее издание 2010-2012 гг Б. Керниган, Д. Ритчи. Язык программирования Си, последнее издание 2010 г Альфред В. Ахо, Джон Э. Хопкрофт, Джеффри Д. Ульман. Структуры данных и алгоритмы, последнее издание 2010 г Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн. Алгоритмы. Построение и анализ, последнее издание 2012 г А. Ахо, Дж. Ульман, Дж. Хопкрофт. Построение и анализ вычислительных алгоритмов, последнее издание 2012 г
-
Структура курса
Лекции – еженедельно до конца семестра, Семинары – коллективное решение типовых задач под руководством преподавателя, Лабораторные работы – решение и сдача индивидуальных задач: Соответствие постановке задачи (все, что требуется по условию задачи, должно быть правильно реализовано), Реализация дополнительных требований (в аудиторное время), Объяснение фрагментов кода по выбору преподавателя и ответы на вопросы.
-
Язык программирования Си
Создавался в 1969-73 гг. Основной разработчик – ДеннисРитчи (Dennis Ritchie, 1941 – 2011) Наиболее популярный язык программирования Простой, лаконичный, гибкий и опасный Основа других языков (C++, Java и т.д.)
-
Тест по Си
Дайте определения идентификатора, константы, переменной, массива, указателя. Как работает функция malloc? Что такое рекурсия? Напишите итеративную функцию возведения в степень (аргументы (основание и показатель) – байты, результат – 64-х битное целое) Напишите рекурсивную функцию вычисления факториала (аргумент – байт, результат – 64-х битное целое)
-
Жизненный цикл ПО
Постановка задачи (создание новой или анализ существующей спецификации). Грубая модель, обобщенный алгоритм. Проектирование данных (абстрактные типы данных). Детализация алгоритма. Разработка структур данных. Кодирование. Компиляция, компоновка, запуск. Тестирование и отладка. Ввод в эксплуатацию. Эксплуатация. Снятие с эксплуатации.
-
Типы данных
Основные (базовые) типы – определяют диапазон значений переменной/функции Целые (char, short, int, long, long long) Вещественные (float, double) Символьный (char) Строковый – набор символов Обезличенный (void)
-
Абстрактные типы данных
АТД = модель + операции, определенные в данной модели Пример – стек (stack), LIFO: Динамическое множество (текущее количество элементов стека меняется динамически) Обязательные операции: запись в стек (push), чтение из стека с последующим удалением (pop) Дополнительные операции: очистка, чтение без удаления, вычисление текущего количества хранимых элементов, контроль нижней и верхней границы
-
Структуры данных
СД – средства для реализации АТД Основаны на базовых типах данных Статические и динамические Статические – память выделяется сразу при запуске программы, ее объем фиксирован, пока «живет» программа. Переменные, обычные массивы Динамические – память выделяется по мере реальной необходимости, в процессе выполнения программы Основаны на указателях (pointer)
-
Пример простой программы с указателями
Этот и последующие примеры созданы в среде MS Visual Studio 2010 Express Edition (1,8 Гбайт) бесплатно доступна по ссылке http://www.microsoft.com/ru-ru/softmicrosoft/VisualStudioExpress.aspx Переписать себе папку проекта Так что же физически хранит указатель? Как располагаются в памяти реальные данные?
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.