
- •Предисловие
- •Введение
- •1. Информатика, информационные технологии
- •1.1. Информация
- •1.1.1. Понятие информации
- •1.1.2. Свойства информации
- •1.1.3. Количество информации
- •1.1.4. Информационные процессы
- •1.3. Представление (кодирование) данных
- •1.3.1. Системы счисления
- •1.3.2. Представление данных в памяти компьютера
- •1.4 Математические основы информатики
- •1.4.1. Алгебра высказываний (булева алгебра)
- •1.4.2. Элементы теории множеств
- •2.5. Поколения цифровых устройств обработки информации
- •2.6. Архитектуры вычислительных систем сосредоточенной обработки информации
- •2.7. Функциональная организация персонального компьютера
- •3. Программное обеспечение
- •3.1. Классификация программного обеспечения. Виды программного обеспечения и их характеристики
- •3.2. Системное программное обеспечение
- •3.2.1 Базовое программное обеспечение
- •3.2.2. Файловые системы
- •3.3. Служебное программное обеспечение
- •3.4. Основы машинной графики
- •3.5. Программное обеспечение обработки текстовых данных
- •3.6. Электронные таблицы
- •3.7. Электронные презентации
- •3.8. Базы данных, системы управления базами данных
- •4. Модели решений задач
- •4.1. Основные понятия
- •4.2. Классификация видов моделирования
- •4.3. Информационные модели
- •4.4. Этапы и цели моделирования
- •4.5 Модели представления данных
- •5. Алгоритмизации и программирование
- •5.1. Понятие алгоритма и его свойства
- •5.2. Способы описания алгоритмов
- •5.3. Основные алгоритмические конструкции
- •5.3.1. Линейная алгоритмическая конструкция
- •5.3.2. Разветвляющаяся алгоритмическая конструкция
- •5.3.3. Алгоритмическая конструкция «Цикл»
- •5.3.4. Рекурсивный алгоритм
- •6. Языки программирования и технологии программирования
- •6.1. Языки программирования
- •6.2. Компиляторы и интерпретаторы
- •6.3. Системы программирования
- •6.4. Классификация и обзор языков программирования
- •6.5. Этапы решения задач на компьютере
- •6.6. Принципы программирования
- •7. Компьютерные сети, Интернет, компьютерная безопасность
- •7.1. Компьютерные сети
- •7.2 Топология сетей
- •7.3. Сетевые компоненты
- •7.4. Интернет. Основные понятия
- •7.5. Подключение к Интернету
- •7.6. Вопросы компьютерной безопасности
- •Заключение
- •Глоссарий
- •4.4. Этапы и цели моделирования 84
6.5. Этапы решения задач на компьютере
Компьютер предназначен для решения разнообразных задач: научно-технических, инженерных, разработки системного программного обеспечения, обучения, управления производственными процессами и т.д. В процессе подготовки и решения на компьютере научно-технических задач можно выделить следующие этапы:
Постановка задачи – формулируется цель решения задачи, подробно описывается ее содержание; проводится анализ условий, при которых решается поставленная задача, выявляется область определения входных параметров задачи.
Формальное построение модели задачи – предполагает построение модели с характеристиками, адекватными оригиналу, на основе какого-либо его физического или информационного принципа; анализируется характер и сущность величин, используемых в задаче.
Построение математической модели задачи – характеризуется математической формализацией задачи, при которой существующие взаимосвязи между величинами выражаются с помощью математических соотношений. Как правило, математическая модель строится с определенной точностью, допущениями и ограничениями.
Выбор и обоснование метода решения – модель решения задачи реализуется на основе конкретных приемов и методов решения. В большинстве случаев математическое описание задачи трудно перевести на машинный язык. Выбор и использование метода решения позволяет свести решение задачи к конкретному набору машинных команд. При обосновании метода решения рассматриваются вопросы влияния различных факторов и условий на конечный результат, в том числе на точность вычислений, время решения задачи на компьютере, требуемый объем памяти и др.
Построение алгоритма – на данном этапе составляется алгоритм решения задачи, в соответствии с выбранным методом решения. Процесс обработки данных разбивается на отдельные относительно самостоятельные блоки, определяется последовательность выполнения этих блоков.
Составление программы – алгоритм решения переводится на конкретный язык программирования.
Отладка программы – процесс устранения синтаксических и логических ошибок в программе. Иногда данный этап называют тестированием программы.
Решение задачи на компьютере и анализ результатов. Теперь программу можно использовать для решения поставленной задачи. Первоначально выполняется многократное решение задачи на компьютере для различных наборов исходных данных. Получаемые результаты анализируются специалистом, поставившим задачу. Разработанная программа поставляется заказчику в виде готовой к исполнению машинной программы. К ней прилагается документация, включающая инструкцию по эксплуатации.
В задачах другого типа некоторые этапы могут отсутствовать. Например, проектирование программного обеспечения не требует построения математической модели.
Все приведенные этапы тесно связаны между собой. Например, анализ результатов может привести к необходимости внесения изменений в программу, алгоритм, метод решения или даже в постановку задачи.
6.6. Принципы программирования
Программа на каком-либо языке программирования может быть разработана в соответствии с одним из перечисленных ниже принципов.
Структурное программирование. Структурное программирование – методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. В соответствии с данной методологией 1)любая программа представляет собой структуру, построенную из трёх типов базовых конструкций: линейная программа, ветвление, цикл; 2) некоторые фрагменты программы (повторяющиеся блоки, либо логически целостные вычислительные блоки) могут оформляться в виде подпрограмм (процедур или функций); 3) разработка программы ведётся пошагово, методом «сверху вниз». Структурный подход обеспечивает создание более понятных и легко читаемых программ, упрощает их тестирование и отладку.
Программирование сверху вниз, когда задача делится на простые, самостоятельно решаемые подзадачи. Затем на основе решенных подзадач выстраивается решение исходной задачи полностью – сверху вниз.
Восходящий метод (программирование снизу вверх) работает в обратном направлении: разработчик, начиная с отдельных специальных подпрограмм, постепенно строит на их основе более сложные конструкции и заканчивает самым верхним уровнем программы.
Основным принципом модульного программирования является принцип «разделяй и властвуй». Модульное программирование - это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам. Использование модульного программирования позволяет упростить тестирование программы и обнаружение ошибок. Модульные программы значительно легче понимать, а модули могут использоваться как строительные блоки в других программах.
Основным понятием объектно-ориентированного программирования (ООП) является понятие объект. Объект объединяет в себе структуры данных и характерные только для него процедуры (методы) их обработки. Объединение данных и свойственных им процедур обработки в одном объекте называется инкапсуляцией и является одним из важнейших принципов ООП. Класс есть шаблон, на основе которого может быть создан конкретный программный объект, он описывает свойства и методы, определяющие поведение объектов этого класса. Следующими важнейшими принципами ООП являются наследование и полиморфизм. Наследование предусматривает создание новых классов на базе существующих и позволяет классу-потомку иметь (наследовать) все свойства класса-родителя. При работе с объектами иерархии «родители – потомки – и т.д.» разрешается задавать одинаковые имена различным по реализации методам, для обработки объектов разных ступеней иерархии. Это явление называется полиморфизм.