Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
3
Добавлен:
24.09.2019
Размер:
122.57 Кб
Скачать

Высокоуровневые методы информатики и программирования

  1. Алгоритмизация процессов обработки данных.

Ответ

Алгоритм - это определённая последовательность действий, которые необходимо выполнить, чтобы получить результат. (Ввел величайший средневековый ученый Средней Азии Мухамед ибн Мусы аль-Хорезми 1225 лет назад).

Алгоритм может представлять собой некоторую последовательность вычислений, а может - последовательность действий нематематического характера.

Для любого алгоритма справедливы общие закономерности - свойства алгоритма.

Свойства алгоритма.

  1. Дискретность.

  2. Понятность

  3. Детерминированность

  4. Массовость

  5. Результативность

Дискретность - это свойство алгоритма, когда алгоритм разбивается на конечное число элементарных действий (шагов).

Понятность - свойство алгоритма, при котором каждое из этих элементарных действий (шагов) являются законченными и понятными.

Детерминированность - свойство, когда каждое действие (операция, указание, шаг, требование) должно пониматься в строго определённом смысле, чтобы не оставалась места произвольному толкованию. Чтобы каждый, прочитавший указание, понимал его однозначно.

Массовость - свойство, когда по данному алгоритму должна решаться не одна, а целый класс подобных задач.

Результативность – свойство, при котором любой алгоритм в процессе выполнения должен приводить к определённому результату. Отрицательный результат также является результатом.

Основными изобразительными средствами алгоритмов являются следующие способы их записи:

  1. словесный;

  2. формульно-словесный;

  3. блок-схемный;

  4. псевдокод;

  5. структурные диаграммы;

  6. языки программирования.

Словесный – содержание этапов вычислений задается на естественном языке в произвольной форме с требуемой детализацией.

При этом способе отсутствует наглядность вычислительного процесса, т.к. нет достаточной формализации.

Формульно-словесный – задание инструкций с использованием математических символов и выражений в сочетании со словесными пояснениями.

При использовании этого способа может быть достигнута любая степень детализации, более наглядно, но не строго формально.

Блок-схемный – это графическое изображение логической структуры алгоритма, в котором каждый этап процесса переработки данных представляется в виде геометрических фигур (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций.

Псевдокод - позволяет формально изображать логику программы, не заботясь при этом о синтаксических особенностях конкретного языка программирования. Обычно представляет собой смесь операторов языка программирования и естественного языка. Является средством представления логики программы, которое можно применять вместо блок-схемы.

Структурные диаграммы - могут использоваться в качестве структурных блок-схем, для показа межмодульных связей, для отображения структур данных, программ и систем обработки данных.

Базовые канонические структуры алгоритмов.

  1. следования (линейные),

  2. выбора (ветвления)

  3. повторения (циклические).

Теорема Дейкстра. Алгоритм любой сложности можно реализовать, используя только три конструкции: следования (линейные), выбора (ветвления) и повторения (циклические).

Программа, составленная из канонических структур, будет называться регулярной программой, т.е. иметь 1 вход и 1 выход, каждый оператор в программе может быть достигнут при входе через ее начало (нет недостижимых операторов и бесконечных циклов). Управление в такой программе передается сверху-вниз. Снабженные комментариями, такие программы хорошо читабельны.

1) следование

Действия А и В могут быть:

  • отдельным оператором;

  • вызовом с возвратом некоторой процедуры;

  • другой управляющей структурой.

2) развилка

Проверка P представляется предикатом, т.е. функцией, задающей логическое выражение или условие, значением которого может быть истина или ложь. Эта структура может быть неполной, когда отсутствует действие, выполняемое при ложном значении логического выражения. Тогда структура будет следующая:

3) повторение

цикл – пока

Действие А будет повторяться до тех пор, пока значение предиката будет оставаться истинным. Поэтому в действии А должно изменяться значение переменных, от которых зависит Р. В противном случае произойдет зацикливание. Вычисление предиката производится до начала выполнения действия А, и может случиться так, что действие А не будет выполняться ни разу.

цикл – до

Повторение типа  Repeat until всегда выполняется хотя бы 1 раз. Действие А перестает выполняться, как только предикат становится истинным.

  1. Языки программирования..

Ответ

Язык программирования — это формализованный язык для описания алгоритма решения задач на компьютере. Языки программирования можно условно разделить на следующие классы:

  1. машинные языки — это языки, воспринимаемые аппаратной частью компьютера (машинные коды);

  2. машинно-ориентированные языки, отражающие структуру конкретного типа компьютера (ассемблер);

  3. процедурно-ориентированные языки — это языки, в которых имеется возможность описания программы как совокупности процедур, или подпрограмм (Си, Паскаль и др.);

  4. проблемно-ориентированные языки, предназначенные для решения задач определенного класса (ЛИСП, ПРОЛОГ).

Другой классификацией языков является их деление на

  1. языки, ориентированные на реализацию основ структурного программирования

  2. объектно-ориентированные языки.

Языки программирования развивались одновременно с развитием ЭВМ.

С развитием компьютерной техники появился машинный язык, с помощью которого программист мог задавать команды, оперируя с ячейками памяти, полностью используя возможности машины. Однако использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Поэтому от его использования пришлось отказаться. «Слова» на машинном языке называются инструкции, каждая из которых представляет собой одно элементарное действие для центрального процессора, такое, например, как считывание информации из ячейки памяти.

Каждая модель процессора имеет свой собственный набор машинных команд, хотя большинство из них совпадает. Если процессор А полностью понимает язык Процессора Б, то говорится, что Процессор А совместим с Процессором Б. Процессор Б будет называться не совместимым с Процессором А если А имеет команды, не распознаваемые Процессором Б.

В случае, когда нужно иметь эффективную программу, вместо машинных языков используются близкие к ним машинно-ориентированные языки — ассемблеры. Люди используют мнемонические команды взамен машинных команд.

Но даже работа с ассемблером достаточно сложна и требует специальной подготовки.

Следующий шаг был сделан в 1954 году, когда был создан первый язык высокого уровня — Фортран (англ. FORTRAN - FORmula TRANslator). Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека, с помощью них, можно писать программы до нескольких тысяч строк длиной. Однако легко понимаемый в коротких программах, этот язык становился нечитаемым и трудно управляемым, когда дело касалось больших программ. Решение этой проблемы пришло после изобретения языков структурного программирования (англ. structured programming language), таких как Алгол(1958), Паскаль(1970), Си(1972).

Также создавались функциональные (аппликативные) языки (Пример: Lisp — англ. LISt Processing, 1958) и логические языки (пример: Prolog — англ. PROgramming in LOGic, 1972).

Хотя структурное программирование, при его использовании, дало выдающиеся результаты, даже оно оказывалось несостоятельным тогда, когда программа достигала определенной длины. Для того чтобы написать более сложную (и длинную) программу, нужен был новый подход к программированию.

В итоге в конце 1970-х и начале 1980-х были разработаны принципы объектно-ориентированного программирования. ООП сочетает лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией, полиморфизмом и наследованием.

Примерами объектно-ориентированных языков являются Object Pascal, C++, Java и др.

ООП позволяет оптимально организовывать программы, разбивая проблему на составные части, и работая с каждой по отдельности.

  1. Современные технологии визуального проектирования программ.

Ответ

Технология программирования — совокупность методов и средств, применяемых в процессе разработки программного обеспечения.

Программирование — теоретическая и практическая деятельность, связанная с созданием программ