Информационные технологии и языки программирования II (old version)

Куратор курса: к.б.н. Клименко А.И., к.б.н. Казанцева Ф.В.

Программа предназначена для студентов, специализирующихся на биологических направлениях, практические занятия опираются на типичные задачи и проблемы, возникающие при работе студентов генетиков, биоинформатиков и системных биологов.

Лекции
Задания для практических занятий
Вопросы к зачету/экзамену
Ссылки на дополнительный материал

Лекции

Лекции (2004)

Название Ссылка на видео Презентации
Лекция №1. Основы программирования на С++
Лекция №2. Массивы
Лекция №3. Этапы развития программирования
Лекция №4. Этапы развития программирования. Часть2
Лекция №5. Операции с файлами и потоками
Лекция №6. Деревья
Лекция №7. Трансляция
Лекция №8. Этапы развития программирования. Часть3
Лекция №9. Операторы
Лекция №10. Наследование
Лекция №11. Абстрактный класс
Лекция №12. Статистические методы и атрибуты классов
Лекция №13. Файловые потоки вывода
Лекция №14. Шаблоны классов
Лекция №15. Ассоциативные массивы

[Назад]

Задания для практических занятий

Задание Доп. материал
Задание №1.

1. Собрать и запустить программу
2. Модифицировать программу так, чтобы она печатала что-нибудь другое

(скачать пример)
Задание №2.

1. Собрать и запустить программу
2. Добиться такого же эффекта с помощью циклов while и do while

(скачать пример)
Задание №3.

1. Собрать и запустить программу без параметров и с параметрами
2. Модифицировать программу так, чтобы она выводила аргументы в обратном порядке

(скачать пример)
Задание №4.

1. Собрать и запустить программу
2. Модифицировать программу так, чтобы она вычисляла минимум трех вещественных чисел, введенных таким же образом

(скачать пример)
Задание №5.

1. Собрать и запустить программу
2. Инициализировать hello массивом символов, проследить, как изменился вывод

(скачать пример)
Задание №6.

1. Собрать и запустить программу

(скачать пример)
Задание №7.

1. Собрать и запустить программу
2. Заменить операторы вида array[i] на *(array+i), убедиться, что функциональность программы не изменилась
3. Создать еще один динамический массив такого же размера, скопировать в него содержимое массива array в обратном порядке.

(скачать пример)
Задание №8.

1. Собрать и запустить программу
2. Модифицировать программу так, чтобы она делала конкатенацию 2 слов, введенных в параметрах программы и разделяла их пробелами (если в параметрах введено «aa» и «bb», то результат должен быть «aa bb»)
3. Модифицировать программу так, чтобы она делала конкатенацию произвольного количества слов, введенных в параметрах программы

(скачать пример)
Задание №9.

1. Собрать и запустить программу
2. Добавить функцию range, которая сможет посчитать расстояние между двумя элементами одного списка.
3. Добавить функцию insertBefore, которая позволит добавлять элемент списка перед указанным элементом.
4. Самостоятельно реализовать двунаправленную очередь (можно использовать структуру List, но не функции работы с ними).
5. Сформировать библиотеку из созданых ранее функций.

(скачать пример)
Задание №10.

1. Реализовать классы векторов и матриц. Для простоты можно ограничиться трехмерными векторами и матрицами 3×3. Должны быть реализованы конструкторы, конструкторы копии, деструкторы, кравнения, присваивания (+, +=, -=, *= для матриц), основные арифметические операции в виде операторов (сложение, вычитание, произведение). Также для обоих классов необходимо перегрузить operator []. Для каждого класса должен быть свой заголовочный файл и объектный модуль.

(скачать пример скачать пример 2)
Задание №11.

1. Реализовать иерархию классов, представленную на диаграмме. Класс Base2 является абстрактным, остальные — нет. (необходимые поля и методы добавить самомтоятельно)
2. Продемонстрировать порядок вызова конструкторов и деструкторов.
Конструкторы виртуальных или невиртуальных базовых классов вызываются в первую очередь?
3. Продемонстрировать различие между невиртуальными и виртуальными методами.
4. Продемонстрировать различие между невиртуальными и виртуальными базовыми классами.
5. Добиться вызова абстрактного метода.

(скачать диаграмму)

[Назад]

Вопросы к зачету/экзамену

  1. Условные переходы: конструкции if и switch.
  2. Циклы for, while, do-while. Управление циклами.
  3. Строки. Работа со строками.
  4. Массивы и указатели. Операции с указателями.
  5. Управление памятью. Динамические массивы.
  6. Многомерные массивы. Способы представления многомерных массивов.
  7. Функция main: точка входа в программу. Аргументы командной строки.
  8. Операции ввода-вывода.
  9. Работа с файлами.
  10. Процедурное программирование. Функции. Прототипы.
  11. Способы передачи параметров в функции.
  12. Области видимости и существования имен.
  13. Модель памяти.
  14. Структурное программирование. Структуры. Операции над структурами.
  15. Контейнеры данных. Способы реализации.
  16. Ссылки. Применение.
  17. Модификатор const. const в параметрах функции.
  18. Использование модификатора const со ссылками и указателями.
  19. Деревья. Способы реализации.
  20. Рекурсия. Примеры рекурсивных алгоритмов.
  21. Указатели на функции. Примеры использования.
  22. Трансляция программ. Заголовочные файлы.

[Назад]

Ссылки на дополнительный материал

На русском языке:

  1. Язык программирования «C». Отдельные главы по всем основным особенностям языка и справочное руководство.
  2. Знакомство с языком программирования C++
  3. Программирование в системе Visual С++ 6.0: (автор Климант Юрий Викторович
  4. Основы C++. Уроки по классическому C++ на примере консольных приложений. Основные конструкции языка, Объектно-орентированное программирование (классы, наследование, полиморфизм и т. п.), перегрузка операторов, работа с вводом-выводом и др.
  5. Первые шаги Набор уроков для начинающих по многим языкам программирования.
  6. Visual C++ для начинающих
  7. Уроки Visual C++. С помощью представленных уроков Вы сможете быстро научиться программировать на Visual C++.
    Создание диалогового приложения и Многооконного приложения с использованием AppWizard, MFC, Исходные тексты программ, рассмотренных на уроках.
  8. MFC. Уроки по программированию под Windows с использованием библиотеки MFC.
  9. Разработка DLL-модулей расширения MFC на языке Visual C++. Пример создания DLL под visual C++ с использованием MFC.
  10. Visual C++. APIКак делается MFC-приложение ручками. 41 урок.
  11. Основы Visual C++.NET
  12. Visual C++. Примеры программ (игры, компоненты). Lines
  13. Создание элементов ActiveX с помощью библиотеки MFC.
  14. Visual C++. Технология COM и библиотека ATL
  15. Основы программирования с помощью библиотеки Microsoft Foundation Classes. (Картузов А. В., Гончаров В. И). Основы MFC (Microsoft Foundation Classes). Обработка сообщений. Ресурсы. Меню и графика.
  16. Желтые страницы C/C++.
  17. FAQ по Visual C++.
  18. Visual C++. FAQ.
  19. Советы для программистов на С++
  20. Справочники, руководства, статьи о программировании на С/C++ (citforum)
  21. Учебники по программированию, а так же по C и C++ (Библиотека Мошкова)
  22. Исходные тексты на С++

На английском языке:

  1. C Programming Tutorials
  2. MicroSoft Visual C++ Tutorials
  3. TTT system
  4. The cplusplus.com tutorial Complete C++ language tutorial

[Назад]

Scroll to top