
- •Понятие алгоритма. Свойства алгоритмов. Основные этапы решения задач
- •1. Формулировка задачи
- •2. Математическая постановка задачи
- •3. Разработка алгоритма
- •4. Написание текста и ввод программы
- •5. Выполнение программы. Поиск и устранение синтаксических ошибок
- •6. Тестирование программы. Поиск и устранение логических ошибок в программе
- •Этапы создания исполняемой программы (загрузочного модуля).
- •Структуры и формы написания программы
- •Внутреннее представление данных
- •Классы памяти
- •Обмен данными через внешние переменные
- •Статические переменные
- •Стандартный ввод/вывод данных через потоки
- •Ввод данных
- •Вывод данных
- •Специфические операции
- •Операции присваивания
- •Некоторые нетрадиционные (унарные) операции
- •Условные выражения
- •Операция условия ?:
- •Выражения (в том числе и условные). Порядок выполнения операций в выражении. Таблица приоритетов.
- •Условный оператор if и его применение при программировании. Сокращенная форма оператора if
- •Полная форма оператора if
- •Множественный выбор else-if
- •Оператор выбора switch и его применение при программировании.
- •Циклические вычислительные процессы
- •Оператор цикла while и его применение при программировании. Цикл while – цикл с предусловием.
- •Оператор цикла do while и его применение при программировании. Цикл do while – цикл с постусловием
- •Оператор цикла for и его применение при программировании. Цикл for – цикл с предусловием
- •Операторы break, goto, continue их применение при программировании. Операторы передачи управления
- •Оператор break
- •Оператор continue
- •Оператор goto
- •Вложенные циклы.
- •Указатели и адреса: описание, инициализация и операции с указателями. Применение указателей при программировании.
- •Статические строки
- •Динамические строки
- •Стандартный цикл обработки строки
- •Одномерные числовые массивы
- •Статические массивы
- •Динамические массивы
- •Динамические матрицы
- •Циклы перебора матрицы
- •Программирование с использованием функций пользователя. Принципы построения функций.
- •Механизм вывода функции
- •Передача значения простого аргумента в функцию. Способы передачи простых данных в функцию
- •Передача в функцию значения аргумента
- •Рекурсивная функция
- •Передача функции в другую функцию через указатель. Параметр функции. Указатель на функцию.
- •Перегрузка функций.
- •Функции с параметрами по умолчанию
- •Шаблоны функций.
- •Формат функции шаблона
- •Механизм шаблона
- •Особенности проекта с функциями-шаблонами
+
Понятие алгоритма. Свойства алгоритмов. Основные этапы решения задач
Формулировка сути задачи.
Математическая постановка задачи.
Разработка алгоритма.
Написание текста и ввод программы.
Выполнение программы. Поиск и устранение синтаксических ошибок.
Тестирование программы. Поиск и устранение логических ошибок.
1. Формулировка задачи
Необходимо четко сформулировать задачу, осмыслить ее, понять цель, определить в каком виде и на основе каких исходных данных будут получены результаты.
2. Математическая постановка задачи
Необходимо сформировать математическую модель, обозначить физические объекты, являющиеся исходными, промежуточными или результирующими данными, вспомнить формулы для получения результата или выбрать численный метод решения задачи.
3. Разработка алгоритма
Точное и простое описание последовательности действий для достижения результата. Алгоритм ориентирован на исполнителя и каждый шаг должен быть допустимым для него. Необходимо детализировать алгоритм настолько, чтобы каждый шаг мог быть записан с помощью определенного оператора или вызовом функции.
Алгоритм может быть записан на:
Естественном (русском) языке;
В виде блок-схемы;
В виде программы.
Свойства алгоритма:
Массовость – применимость алгоритма для множества задач из класса однотипных, отличающихся только набором исходных данных.
Определенность – однозначность, исключающая произвольность толкований шагов алгоритма.
Дискретность – возможность разбиения задачи на конечное число шагов.
Результативность – возможность получения результата за конечное число шагов.
4. Написание текста и ввод программы
Язык программирования – искусственный язык, отличающийся ограниченным количеством слов и строгими правилами записи команд.
Разные типы процессоров имеют разный набор команд. Если язык ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком низкого уровня (например, ассемблер).
Языки программирования низкого уровня применяются для написания небольших системных приложений, драйверов устройств, модулей стыковки с нестандартным оборудованием, когда важнейшими требованиями становятся компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам.
Но! При этом программист обязан иметь высокую квалификацию и досконально знать аппаратную часть, невозможно написание больших приложений, невозможен перенос программы с другим типом процессора, а ошибки программирования могут вывести из строя компьютер.
Языки программирования высокого уровня (в том числе и Си) отстранены от аппаратной части и взаимодействуют с ней посредством встроенных функций, гарантирующих ее защиту и правильную работу.
Языки программирования высокого уровня лаконичнее, легко реализуется сложная логика, можно не знать внутреннее устройство компьютера, объем может быть большим.
Но! При этом программист «расплачивается» большим объемом оперативной памяти и более медленным выполнением программы.
Ввод текста осуществляется с помощью программы редактор.