- •1. Мова програмування. Класифікація мов програмування. Поняття про інтерпретацію та компіляцію. Інтегровані середовища програмування.
- •2. Загальна структура програми. Основні розділи програми і правила їх описання. Директиви препроцесора.
- •3. Поняття змінної. Оголошення змінної. Типи даних. Поняття локальних і глобальних змінних. Час життя змінної. Константи.
- •1. Char - символ
- •3. Float - число з плаваючою комою одинарної точності
- •4. Double - число з плаваючою комою подвійної точності
- •4. Поняття оператора. Різновиди операторів. Вирази. Основні правила запису, обчислення та використання виразів. Надання значень виразів змінним. Пріоритет операцій. Арифметичні операції,
- •5. Оператори введення та виведення: з використанням формату, символів, рядків.
- •Int printf (const char * керуючий_рядок, ...);
- •Int scanf (const char * керуючий_рядок, ...);
- •6. Вказівники та посилання. Адреси об’єктів в пам’яті. Динамічні структури даних.
- •7. Складені типи даних: масиви. Поняття масиву, одновимірні та багатовимірні масиви. Ініціалізація масивів та виведення їх на екран. Класичні алгоритми для роботи з масивами
- •8. Складені типи даних: рядки. Бібліотека функцій обробки рядків. Класичні алгоритми для обробки рядків
- •9. Складені типи даних: структури (записи)
- •10. Файлові типи даних. Файли прямого доступу.
- •11. Файлові типи даних. Файли послідовного доступу.
- •12. Алгоритмічна конструкція розгалуження та її графічне подання. Оператори розгалуження (умовний оператор та оператор вибору). Оператори зміни порядку виконання програми.
- •13. Алгоритмічна конструкція повторення та її графічне подання. Циклічні конструкції в мовах програмування. Оператори циклів. Оператори зміни порядку виконання програми.
- •14. Функціональний підхід в програмуванні. Рекурсія та її програмна реалізація.
- •15. Алгоритми пошуку: послідовний та бінарний пошук.
- •16. Алгоритм впорядкування : вибірка, вставка, обмін.
- •18. Абстрактні типи даних: лінійні списки
- •19. Абстрактні структури даних: стеки та черги
- •20. Абстрактні структури даних: двійкові дерева.
- •21. Наближені методи обчислення визначених інтегралів: метод лівих, правих та середніх прямокутників; метод трапецій; метод Сімпсона.
- •Метод Монте-Карло: зміст, приклади, застосування для обчислення площ складних фігур.
- •Наближені методи розв’язання алгебраїчних рівнянь: метод половинного ділення; метод хорд; метод дотичних.
- •Поняття моделювання та типи моделей. Класифікація моделей, інформаційна модель, математична модель як різновид інформаційної моделі. Основні етапи моделювання.
14. Функціональний підхід в програмуванні. Рекурсія та її програмна реалізація.
Рекурсія - це спосіб організації обчислювального процесу, при якому функція в ході виконання операторів звертається сама до себе. Функція називається рекурсивною, якщо під час її виконання можливий повторний її виклик безпосередньо (прямий виклик) або шляхом виклику іншої функції, в якій міститься звертання до неї (непрямий виклик). Прямою (безпосередньою) рекурсією називається рекурсія, при якій всередині тіла деякої функції міститься виклик тієї ж функції. void fn(int i) { /* ... */ fn(i); /* ... */} Непрямою рекурсією називається рекурсія, що здійснює рекурсивний виклик функції шляхом ланцюга викликів інших функцій. При цьому всі функції ланцюга, що здійснюють рекурсію, вважаються також рекурсивними. Якщо функція викликає сама себе, то в стеку створюється копія значень її параметрів, як і при виклику звичайної функції, після чого управління передається першому оператору функції. При повторному виклику цей процес повторюється.
Важливим для розуміння ідеї рекурсії є те, що в рекурсивних функціях можна виділити дві серії кроків. Перша серія - це кроки рекурсивного занурення функції в саму себе до тих пір, поки вибраний параметр не досягне граничного значення. Ця важлива вимога завжди повинна виконуватися, щоб функція не створила нескінченну послідовність викликів самої себе. Кількість таких кроків називається глибиною рекурсії. Друга серія - це кроки рекурсивного виходу до тих пір, поки вибраний параметр не досягне початкового значення. Вона, як правило забезпечує отримання проміжних і кінцевих результатів.
На протяжении последних 400 лет, центральным понятием математики является понятие функции. Математические функции выражают связь между параметрами (входом) и результатом (выходом) некоторого процесса. Так как вычисление это тоже процесс, имеющий вход и выход, функция - вполне подходящее средство задания вычислений. Именно этот простой принцип положен в основу функционального стиля программирования. Функциональная программа представляет собой определения функций. Функции определяются через другие функции или рекурсивно - через себя. В процессе выполнения программы, функции получают параметры, вычисляют и возвращают результат, в случае необходимости вычисляя значения других функций. Программируя на функциональном языке, программист не должен описывать порядок вычислений. Ему необходимо просто описать желаемый результат в виде системы функций.
15. Алгоритми пошуку: послідовний та бінарний пошук.
Бинарный поиск. Алгоритм двоичного поиска допустимо использовать для нахождения заданного элемента только в упорядоченных массивах. Рассмотрим его на примере массива, упорядоченного по убыванию. Исходный массив делится пополам и для сравнения выбирается средний элемент. Если он совпадает с искомым, то поиск заканчивается. Если же средний элемент меньше искомого, то все элементы левее его также будут меньше искомого. Следовательно, их можно исключить из зоны дальнейшего поиска, оставив только правую часть массива. Аналогично, если средний элемент больше искомого, то отбрасывается правая часть, а остаётся левая часть массива. На втором этапе выполняются аналогичные действия над оставшейся половиной. В результате после второго этапа остаётся ¼ часть массива. И так далее, пока или элемент будет найден, или длина зоны поиска станет равной нулю. В последнем случае элемент найден не будет. Последовательный поиск. Метод последовательного поиска заключается в поэлементном сравнении всех элементов массива с заданным элементом. Этот метод применим для неупорядоченной информации, но так же можно использовать его на отсортированных данных.
