- •1. Предел числовой последовательности и его свойства. Критерии Коши и Вейерштрасса существования предела. Число .
- •2. Предел и непрерывность функции в точке. Основные свойства предела функции. Локальные и глобальные свойства непрерывных функций.
- •3. Производная и дифференциал. Основные теоремы дифференциального исчисления. Условия монотонности, выпуклости и локального экстремума функции.
- •4. Функции многих переменных: непрерывность и дифференцируемость. Дифференциал и частные производные сложной функции. Экстремумы функции многих переменных.
- •5. Определенный интеграл. Его свойства и приложения.
- •6. Кратные интегралы. Их свойства и приложения.
- •7. Функциональные последовательности и ряды. Признаки равномерной сходимости. Свойства равномерно сходящихся последовательностей и рядов.
- •8. Производная и дифференциал функции комплексной переменной.
- •9. Основная теорема о неприводимых многочленах.
- •11. Скалярное, векторное и смешанное произведение векторов трѐхмерного евклидова пространства. Приложения к решению задач.
- •12. Плоскость и прямая в прастранстве.
- •13. Определение функции от матрицы. Свойства функций от матриц. Ф-ии от матриц
- •14. Задача Коши для дифференциального уравнения и для системы дифференциальных уравнений. Теорема существования и единственности решения для уравнения первого порядка в нормальной форме.
- •15. Методы интегрирования линейных дифференциальных уравнений и систем с постоянными коэффициентами.
- •16. Метод Фурье разделения переменных и его применение в решении краевых задач для ду с частными производными. Классификация дучп II порядка
- •17. Равномерное распределение случайной величины.
- •18. Формула полной вероятности. Теорема Байеса.
- •19. Теоремы о выборочной средней и выборочной дисперсии.
- •20 Лиу Фредгольма и Вольтерра.Ур-ия с вырожд.И малым ядром.Альтернатива Фредгольма.
- •21 Гильбертово пр-во.
- •22. Интерполирование. Интерполяционные многочлены.
- •23. Решение нелинейных уравнений.
- •24. Интерполяционные квадратурные формулы.
- •25. Линейное программирование. Методы решения задач линейного программирования.
- •27 Методы языка программирования.
- •28. Пользовательские типы данных.
- •29.Проектирование структур данных.
- •30. Сравнительный анализ методов сортировки.
- •31. Сравнительный анализ методов поиска
- •32. Разработка приложений, поддерживающих графический интерфейс
- •33. Объектно-ориентированное программирование. Абстрактные типы и классы.
- •34. Объектно-ориентированное программирование. Ввод-вывод данных.
- •35. Платформо-независимые языки программирования.
- •36. Классификация ос
- •37. Файловые системы
- •38. Информация и алгоритмы.
- •39. Алгоритмы работы с графами.
- •40. Проектирование баз данных.
- •41. Реляционная модель данных.
- •42. Принципы построения вычислительных сетей.
- •43. Глобальные вычислительные сети. Интернет.
- •44. Метод обратной функции моделирования реализаций непрерывной случайной величины.
- •45. Графические форматы. Сжатие графической информации.
- •46. Модели представления графической информации.
- •47. Интегрированная среда разработки. Компоненты среды. Обзор свойств, методов и событий компонентов.
- •48. Использование системных компонентов и диалогов.
- •49. Управление проектами. Системы управления проектами.
- •50. Технология организации ведения бухгалтерского учета с использованием информационных систем.
- •51. Система Mathematica. Возможности моделирования.
- •52. Математическое моделирование и современные системы компьютерной математики (на примере системы Mathematica).
- •53.Нелок одношаг процессы неполного прогноза для реш-я нелин ур-й с гладкими операторами.
- •54.Нелокальные многошаговые итер проц неполного прогноза для решения нелинейных уравнений с гладкими операторами.
- •55.Нелокальные одношаговые итер процессы полного прогноза для решения нелинейных уравнений с гладкими операторами.
- •56. Понятие корректно поставленной и некорректно поставленной задачи. Примеры. Метод простой итерации явного типа решения некорректно поставленных задач с априорным выбором числа итераций.
- •57. Метод простой итерации явного типа решения некорректно поставленных задач с апостериорным выбором числа итераций.
- •58. Метод обобщенного суммирования рядов для решения некорректных задач.
- •59. Сходимость метода итераций явного типа некорректных задач в энергетической норме.
- •60. Метод регуляризации решения некорректных задач. Сходимость метода. Оценка погрешности.
- •61. О методах неполного прогноза, локально сходящихся с кубической скоростью, для решения нелинейных уравнений с гладкими операторами.
- •62. Итерационные методы полного прогноза, локально сходящиеся с кубической скоростью, для решения нелинейных уравнений с гладкими операторами.
- •63. Нелокальные итерационные методы неполного прогноза, локально сходящиеся с кубической скоростью, для решения нелинейных уравнений с непрерывным оператором.
- •64. Ограничения вычислительных систем
- •65. Сравнение программ.
- •66. Структурная организация данных.
- •67. Структурная организация данных.
- •68. Построение эффективных программ.
- •69. Перегрузка операторов.
- •70. Наследование.
- •71. Проектирование и использование баз данных.
- •72. Современные средства проектирования баз данных и приложений (на примере средства по выбору студента).
- •73. Нелок. Одношаг. Итерац. Процессы неполн. Прогноза типа Стеффенсена
- •74. Нелок. Многошаг. Итерац. Процессы неполн. Прогноза типа Стеффенсена
- •75. Нелок. Итерац. Процессы неполн. Прогноза метода хорд для решения нелинейных уравнений с непрерывным нелинейным оператором.
68. Построение эффективных программ.
ЭФФЕКТИВНОСТЬ ПРОГРАММ
Основной задачей программирования является создание правильных, а не эффективных программ. Эффективная программа не нужна, если она не обеспечивает правильных результатов.
ОТНОШЕНИЕ К ЭФФЕКТИВНОСТИ
Существуют три типа программ, и для каждого из них эффективность должна быть различной.
К первому типу относятся часто используемые программы. Это операционные системы, компиляторы, прикладные подпрограммы и системы резервирования авиабилетов. Для этих программ эффективность является первостепенной задачей вследствие их частого использования и специфического выполнения.
Второй тип составляют производственные программы, используемые длительное время. Этот тип программ пишут профессиональные программисты. Хотя эффективность таких программ существенна, обычно еще больше внимания уделяют их эксплуатационным характеристикам.
Третий тип программ—программы, написанные не программистами, а научными работниками или администраторами. Здесь эффективность имеет значение только для программ, которые должны уместиться в заданном объеме памяти и выполняться за приемлемое время.
ЭФФЕКТИВНОСТЬ ИЛИ УДОБОЧИТАЕМОСТЬ?
Многие методы, делающие программу эффективной, не наносят ущерба ее удобочитаемости. Эти методы следует использовать всегда. Некоторые меры по повышению эффективности могут быть просто вредными для получения удобочитаемой программы. Удобочитаемость программы обычно более важна, чем эффективность.
ОПТИМИЗИРУЮЩИЕ КОМПИЛЯТОРЫ
Эффективность важна на двух стадиях разработки программы: компилирования и выполнения. Если компилятор работает быстро, то он обычно составляет программу, которая выполняется медленно. Компиляторы, создающие эффективную объектную программу, обычно бывают большими и работают медленно, так как оптимизируют объектную программу.
Некоторые современные компиляторы позволяют пользователю выбрать ресурс, который нужно оптимизировать.
ОПТИМИЗАЦИЯ ПРОГРАММ
Основными критериями при этом должны являться время и объем памяти, используемые программой. Если оптимизация старого алгоритма не дает желаемого результата, тогда, возможно, следует выбрать другой алгоритм.
ВРЕМЯ РАБОТЫ ПОДПРОГРАММ
После деления программы на подпрограммы следует определить процент времени, используемый каждой подпрограммой. Это необходимо сделать для того, чтобы узнать, какие части программы расходуют больше всего времени.
ПАМЯТЬ
Недостаток объема памяти в машине является общей проблемой.
Память делят на участки различного размера. Если программа достаточно компактна, чтобы разместиться в одном из таких участков памяти, то чем меньше этот участок, тем быстрее выполняется программа и ниже стоимость.
ВИРТУАЛЬНАЯ ПАМЯТЬ
Если машина имеет виртуальную память, то операционная система автоматически делит программу на части фиксированной длины, называемые страницами. Кроме того, операционная система в случае необходимости пересылает страницы в оперативную память. ВЫЧИСЛЕНИЕ КОНСТАНТ
Программы становятся более удобочитаемыми, если в них используются выражения, включающие константы. Cons int a =10;
Если выражения с константами не вычисляются во время компилирования, необходимо их всегда располагать вне цикла.
Процесс выполнения операторов, значения которых известны на стадии компилирования, что позволяет не выполнять их во время прогона программы, обычно называют сверткой. Свертка выполняется также для значений, которые могут быть определены внутри блоков программы.
ИНИЦИИРОВАНИЕ ПЕРЕМЕННЫХ
Если начальные значения присваиваются переменным одновременно с их объявлением, то тем самым экономится время выполнения программы. В этом случае переменные получают начальные значения во время компилирования, а не во время выполнения.
АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
Математические операции в порядке возрастания времени их выполнения: 1) сложение или вычитание, 2) умножение, деление, 4) возведение в степень.
Для оптимизации программы необходимо заменять 1 операцию другой. (* на +)
ОПТИМИЗАЦИЯ в ПРОЦЕССЕ КОМПИЛИРОВАНИЯ
Некоторые компиляторы выполняют оптимизацию, которая состоит в исключении повторяющихся вычислений, однако существуют сильные ограничения на количество типов оптимизирующих операций. Чем больше их число, тем больше компилятор и, следовательно, тем медленнее выполняется компилирование.
Другим ограничением на оптимизацию в процессе компилирования является то, что компилятор может оптимизировать только линейные участки программы, т. е. те, которые имеют один вход (первая выполняемая команда) и один выход (последняя выполняемая команда).
ОПТИМИЗАЦИЯ ЦИКЛОВ
Операторы внутри цикла могут выполняться много тысяч раз и любая экономия, даже совсем небольшая, будучи увеличена в тысячи раз, дает существенный выигрыш.
Разберем пример:
Цикл А 100 итераций
Цикл В 100 итераций
Цикл С 100 итераций
I—Конец С Конец В
Конец А
Оптимизируйте сначала внутренние циклы.
Дальнейшее улучшение (которое может привести к ухудшению удобочитаемости программы) состоит в том, чтобы расположить на первом месте условие, которое, по всей вероятности, является истинным, а за ним остальную часть условия.
Сложные повторяющиеся выражения предпочтительнее располагать внутри условных операторов, поскольку обычно сначала нужно проверить часть этих вычислений.
ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ
Как только в первом выражении встретится значение TRUE, все выражение считается истинным, тогда как второе выражение считается ложным, как только в нем встретится значение FALSE. Для того чтобы получить пользу от оптимизации вычислений, программист должен расположить переменные в выражении в таком порядке, чтобы самая левая переменная чаще других вызывала завершение всего логического выражения.
ИНДЕКСАЦИЯ
Индексы полезны, хотя они расходуют и машинное время, и память. Если к индексированной переменной обращаются внутри одного или нескольких операторов более одного раза, присвойте ее значение другой переменной. Не следует применять индексацию внутри цикла там, где можно обойтись использованием простой переменной.
Индексация обладает еще одной особенностью: чем больше индексов используется, тем менее эффективна программа. Это означает, что массив А(720) более эффективен, чем массив А(12, 5, 12).
Еще один метод сокращения числа индексов заключается в том, чтобы сделать двумерные или многомерные массивы эквивалентными одномерному массиву. Недостаток заключается в снижении удобочитаемости: читающий должен заметить, что два массива эквивалентны. Ухудшение удобочитаемости может быть серьезным недостатком, если оно приводит к путанице или затрудняет модификацию программы.
Внутри циклов следует избегать вычислений со сложной индексацией.
ОТЛАДКА ПРОГРАММ
Отладка программы предполагает обязательное наличие той или иной ошибки; в противном случае мы имеем дело с тестированием. В общем времени разработки программы отладка занимает, по оценкам специалистов, от 50 до 90%.
Процесс отладки зависит от используемой машины, языка программирования, операционной системы, специфики самой задачи и от особенностей конкретной программы.
Каждый язык, компилятор и машина связаны с определенными типами дефектов программ и ошибок программирования. Простейшим примером являются синтаксические ошибки, которые в очень сильной мере предопределяются конкретным языком программирования.
РАЗЛИЧИЕ МЕЖДУ ОТЛАДКОЙ И ТЕСТИРОВАНИЕМ
Отладка имеет место тогда, когда программа со всей очевидностью работает неправильно. Поэтому отладка начинается всегда в предвидении отказа программы. Если же оказывается, что программа работает верно, то она тестируется. Таким образом, тестирование устанавливает факт наличия ошибки, а отладка выявляет ее причину, и эти два этапа разработки программы перекрываются.
ОШИБКИ В ОПИСАНИИ ЗАДАЧИ (Подобная ситуация может складываться как из-за отсутствия взаимопонимания между программистами и пользователями, так и от того, что пользователи в действительности не знают, чего они хотят)
ОШИБКИ В ВЫБОРЕ АЛГОРИТМА (В качестве примера неэффективного, плохо подобранного алгоритма можно назвать способ решения задачи, который дает точный ответ, но требует больших затрат времени)
ОШИБКИ АНАЛИЗА (Эти ошибки связаны либо с неполным учетом могущих возникнуть ситуаций, либо с неверным решением задачи)
ОШИБКИ ОБЩЕГО ХАРАКТЕРА (Такими ошибками могут быть: ошибки из-за недостаточного знания или непонимания программистом языка программирования или самой машины, программы не удовлетворяют некоторым требованиям, но эти требования не были сформулированы в задании на разработку программ)
ОШИБКИ ФИЗИЧЕСКОГО ХАРАКТЕРА
1. Пропуск некоторых программных карт или строк.
2. Перестановка карт или строк программы.
3. Появление лишних карт или строк (например, в результате того, что оказались не вычеркнутыми скорректированные строки).
4. Отсутствие необходимых данных.
5. Непредусмотренные данные
6. Неверный формат данных.
7. Отсутствие операторов управления заданиями.
8. Использование неверной распечатки программы.
