
Учебные материалы к элективным курсам по информатике для 10 - 11 классов, выпуск 3
Потопахин Виталий Валерьевич
РЕШЕНИЕ ЗАДАЧ ПО ПРОГРАММИРОВАНИЮ НА ЯЗЫКЕ C++
Пояснительная записка 1
Тематическое планирование 1
Текст пособия 1
Пояснительная записка
Главная цель курса: изучение методов решения логически сложных задач по программированию.
В процессе изучения слушатели освоят методы решения задач, основанные на применении сведений из теории графов (деревья, цепи, циклы), рекурсивных функций и некоторых других понятий дискретной математики. Рассмотрят большое количество примеров, попробуют самостоятельно решить различные по содержанию и уровню сложности задачи.
Основные знания.
Древовидные структуры данных.
Понятие рекурсии.
Понятие эвристики, понятие модели.
Тематическое планирование
№ |
Тема |
лекции |
лабораторные |
1 |
Построение и обход деревьев |
4 |
2 |
2 |
Эвристические методы в задачах перебора |
2 |
2 |
3 |
Рекурсивные задачи |
2 |
2 |
4 |
Моделирование физических процессов |
2 |
4 |
ИТОГО |
10 |
10 |
Текст пособия
Главной структурной единицей программы на языке С++, является программный модуль, именуемый в С++ функцией. Как и в любом другом языке, эта основная конструкция устроена так:
Для неё указывается список переменных, значения которых определяются при вызове функции - так называемый список формальных переменных.
Функция имеет тело, состоящее из команд языка, выполнение которых производится так, как если бы данная функция была отдельной независимой программой.
Переменные, определяемые в теле функции, это локальные переменные - то есть такие, значения которых, доступны только внутри данной функции.
Функция имеет доступ к глобальным переменным.
Функция может возвращать значения в точку программы, в которой был осуществлён вызов функции.
То, что было перечислено выше, имеет место в любом языке программирования, только имеет разные названия (функция, процедура, подпрограмма). В С++ есть ряд особенностей которые делают функцию - функцией именно С++. Перечислим эти особенности.
Место расположение функции не имеет значения. Этим самым С++ сильно отличается, от например языка Паскаль в котором устанавливается жёсткая иерархия процедур/функций. Благодаря этому свойству программист получает большую свободу действий и при написании программы и при разработке алгоритма.
Возврат значений из функции и соответственно прерывание её работы может произойти в любой точке её тела. Более того, таких точек выхода из функции может быть много, столько, сколько нужно программисту.
Существует одна функция - которая считается главной в том смысле, что выполнение программы начинается именно с неё. Её имя фиксировано – main()
Пример программы С++. Расчёт факториала
#include <stdio.h>
#include <iostream.h>
void main()
{ int n,a;
cin >> n; // ввод
a=1;
for (int i=1;i<=n;i++) a=a*i; // цикл
cout<<a; //вывод
}
Записанная выше программа состоит из одной главной функции, в которой используются операции ввода-вывода, оператор присваивания и конструкция цикла. Перед программой с помощью команды #include указываются файлы содержащие описания используемых функций и операций.
Любая языковая конструкция, за исключением заголовка функции завершается точкой с запятой. Сложный оператор организуется с помощью скобок {} сама функция также является сложным оператором.