Раздел Алгоритмизация и программирование
29. Этапы решения задач на компьютерах. Трансляция, компиляция и интерпретация
Работа по решению прикладной задачи на компьютере проходит через следующие этапы:
1. постановка задачи;
2. математическая формализация
3. построение алгоритма; Разработка алгоритма включает в себя выбор метода проектирования алгоритма; выбор формы записи алгоритма (блок-схемы, псевдокод и др.); выбор тестов и метода тестирования; проектирование самого алгоритма.
4. составление программы на языке программирования; Программирование включает в себя следующие виды работ: выбор языка программирования; уточнение способов организации данных; запись алгоритма на выбранном языке программирования.
5. отладка и тестирование программы; Под отладкой программы понимается процесс испытания работы программы и исправления обнаруженных при этом ошибок.
6. проведение расчетов и анализ полученных результатов. это использование уже разработанной программы для получения искомых результатов.
Эту последовательность называют технологической цепочкой решения задачи на компьютере.
30. Алгоритм и его свойства. Способы записи алгоритма
Алгоритм - это определенным образом организованная последовательность действий, за конечное число шагов приводящая к решению задачи.1)Одно из первоначальных требований, которое предъявляется к алгоритму, состоит в том, что описываемый процесс должен быть разбит на последовательность отдельных шагов.2) Это свойство алгоритмов будем называть понятностью. 3) будучи понятна разным исполнителям, после исполнения каждым из них должна давать одинаковый результат. 4. Обязательное требование к алгоритмам - результативность. 5) массовость- обеспечивающие решение не одной исключительной задачи, а некоторого класса задач данного типа. Способы записи алгоритма
Основными изобразительными средствами алгоритмов являются следующие способы их записи:
- словесный;
- формульно-словесный;
- блок-схемный;
- псевдокод;
- структурные диаграммы;
- языки программирования.
31. Эволюция и классификация языков программирования. Основные понятия языков программирования
Под ЯП понимают правила представления данных и записи алгоритмов их обработки, которые автоматически выполняются ЭВМ. В более абстрактном виде ЯП является средством создания программных моделей объектов и явлений внешнего мира. Под ЯП понимают правила представления данных и записи алгоритмов их обработки, которые автоматически выполняются ЭВМ. В более абстрактном виде ЯП является средством создания программных моделей объектов и явлений внешнего мира. 1. По степени ориентации на специфические возможности ЭВМ ЯП делятся на:· машинно-зависимые;
· машинно-независимые2. По степени детализации алгоритма получения результата ЯП делятся на: · языки низкого уровня; · языки высокого уровня; · языки сверхвысокого уровня. 3. По степени ориентации на решение определенного класса задач: · проблемно-ориентированные; · универсальные. 4. По возможности дополнения новыми типами данных и операциями: · расширяемые; · нерасширяемые. 5. По возможности управления реальными объектами и процессами:·языки систем реального времени; · языки систем условного времени. 6. По способу получения результата: · процедурные;· непроцедурные. 7. По типу решаемых задач: · языки системного программирования; · языки прикладного программирования. 8. Непроцедурные языки по типу встроенной процедуры поиска решений делятся на: · реляционные;· функциональные; · логические. Каждый язык программирования предназначен для решения определенного класса задач:
Фортран – старейший язык программирования, предназначен для решения математических задач .
Кобол – для решения экономических задач
Бейсик , Pascal – для обучения
Java (джава) – язык сетевого программирования.
32. Алгоритмы разветвляющейся структуры
В алгоритмическую структуру «ветвление» входит условие, в зависимости от выполнения или невыполнения которого реализуется та или иная последовательность команд. Алгоритм с ветвлением означает, что в зависимости от выполнения или невыполнения условия исполняется либо одна, либо другая ветвь алгоритма. Условие – высказывание, которое может быть либо истинным, либо ложным. Условие, записанное на формальном языке, называется условным, или логическим выражением. Условные выражения могут быть простыми и сложными. Простое условие включает в себя два числа, две переменных или два арифметических выражения, которые сравниваются между собой с использованием операций сравнения (равно, больше, меньше). Например, 5 > 3, 2 * 8 = 4 * 4. Сложное условие – это последовательность простых условий, объединенных между собой знаками логических операций. Например, 5 > 3 And 2 * 8 = 4 * 4.
33. Алгоритмы циклической структуры
Циклом называют повторение одних и тех же действий (шагов). Последовательность действий, которые повторяются в цикле, называют телом цикла. Существует несколько типов алгоритмов циклической структуры.
1. В цикле с предусловием условие проверяется до тела цикла, в цикле с постусловием - после тела цикла.
2. В цикле с постусловием тело цикла выполняется хотя бы один раз, в цикле с предусловием тело цикла может не выполниться ни разу.
3. В цикле с предусловием проверяется условие продолжения цикла, в цикле с постусловием - условие выхода из цикла.
34. Понятие о структурном программировании. Модульный принцип программирования. Подпрограммы. Принципы проектирования программ сверху-вниз и снизу-вверх
Основой технологии метода структурного программирования являются:
1) Принцип модульной разработки программ
2) Использование при разработке модуля композиции трех базовых структур (элементов):
А) линейной (структуры следования)
Действия выполняются последовательно друг за другом
Б) ветвления (структуры «если-то-иначе») В)циклической (структуры «цикл пока»)
Структурное программирование делает текст программы более понятным – алгоритм решения ясно
виден из исходного текста.
Структурное программирование называют программированием без GOTO. Его методология основана на
использовании подпрограмм и независимых структур данных, объединяющих связанные между собой
совокупности данных. Подпрограммы позволяют заменять в тексте программ упорядоченные блоки команд, отчего
программный код становится более компактным. Структурный подход обеспечивает создание более понятных и
легко читаемых программ, упрощает их тестирование и отладку. Программирование сверху вниз, когда задача делится на простые, самостоятельно решаемые подзадачи.Затем на основе решенных подзадач выстраивается решение исходной задачи полностью — сверху вниз.
Снизу-вверх - от малого к большему, решаются конкретные задачи, их результаты обьединябтся в более крупное решение
Плюсы: начать можно сдесь и сейчас, после первой итерации можно уже что-то показывать заказчику
Минусы: качество постановки задач и собрание всего этого в кучу так, что бы работало, да еще и как надо зависит от профессионализма разработчиков а так же представителей заказчика
35. Объектно-ориентированное программирование
Объектно-ориентированные подход к программированию - это подход к разработке программного обеспечения, основанный на объектах, а не на процедурах.
Java, Си, Visual Basic Объект – это базовое понятие ООП. Любой объект принадлежит одному или нескольким классам, которые в свою очередь определяют, описывают поведение объекта. Каждый объект характеризуется свойствами, методами и событиями .
Свойства – описание объекта. Примеры атрибутов: "имя", "рост". Набор конкретных значений определяет текущее состояние объекта.
Метод – это действие объекта, изменяющее его состояние или реализующее другое его поведение. Пример методов: "назвать свое имя", "стать невидимым".
Объект, класс, метод, свойства, события – это базовые понятия ООП.
Итак, действие в ООП инициируется посредством передачи сообщений объекту, ответственному за действия. Сообщение содержит запрос на осуществление действия и сопровождается дополнительной информацией (аргументами), необходимой для его выполнения.
36. Интегрированные среды программирования
Интегрированная среда программирования – система программных средств, используемая программистами для разработки программного обеспечения.
Обычно среда программирования включает в себя:
•текстовый редактор;
•компилятор и/или интерпретатор;
В простейшем случае интерпретатор читает исходный текст программы по одной строке за раз, выполняет эту строку и только после этого переходит к следующей. Так работали ранние версии языка Basic. В языках типа Java исходный текст программы сначала конвертируется в промежуточную форму, а затем интерпретируется. В этом случае программа также интерпретируется в процессе выполнения.
Компилятор читает сразу всю программу и конвертирует ее в объектный код, то есть транслирует исходный текст программы в форму, более пригодную для непосредственного выполнения компьютером. Объектный код также называют двоичным или машинным кодом. Когда программа скомпилирована, в ее коде уже нет отдельных строк исходного кода.
•средства автоматизации сборки;
•отладчик.
37. Типовые алгоритмы. Модульный принцип программирования. Подпрограммы. Принципы проектирования программ сверху-вниз и снизу-вверх
Действия в алгоритме могут следовать последовательно друг за другом. Однако очередность выполнения этих действий может быть изменена, если в алгоритме предусмотрен анализ некоторого условия. Путем включения условий создаются алгоритмы с различной структурой, в которой всегда можно выделить несколько типовых конструкций:
линейную;
разветвляющуюся;
циклическую.
Линейная алгоритмическая структура - описание последовательности действий, которые выполняются однократно и в заданном порядке.
Это такие алгоритмы, в которых все действия совершаются одно за другим, независимо ни от чего. Такие алгоритмы называются линейными; характерная для них форма организации действий – последовательное выполнение. Разветвляющаяся алгоритмическая структура (ветвление) - описание действий, последовательность выполнения которых зависит от истинности или ложности условий. Циклическая алгоритмическая структура – описание действий, которые для решения задачи должны повторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называется телом цикла.