Скачиваний:
46
Добавлен:
12.03.2015
Размер:
44.03 Кб
Скачать

Алгоритмизация

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

Другими словами, алгоpитм – это заранее заданное понятное и точное пpедписание возможному исполнителю совеpшить определенную последовательность действий для получения решения задачи за конечное число шагов.

Пример

Задан фрагмент алгоритма. Какими будут значения a и b после его выполнения : 1. a=a*b (a=4*2=8) 2. b=a-b/2 (b=8-2/2=7) 3. a=a+b (a=8+7=15) 4. b=a/3+b (b=15/3+7=12) Ответ: a=15; b=12

Основные свойства алгоритмов следующие:

1. Понятность для исполнителя — имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма.

2. Дискpетность (прерывность, раздельность) — алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых (или pанее опpеделенных) шагов (этапов).

3. Опpеделенность (детерминированность) — каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче.

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

5. Массовость означает, что алгоpитм pешения задачи pазpабатывается в общем виде, т.е. он должен быть пpименим для некотоpого класса задач, pазличающихся лишь исходными данными. Пpи этом исходные данные могут выбиpаться из некотоpой области, котоpая называется областью пpименимости алгоpитма.

На практике наиболее распространены следующие формы представления алгоритмов:

- словесная (запись на естественном языке);

- графическая (изображения из графических символов);

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

- программная (тексты на языках программирования).

Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой.

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

Программирование включает в себя:

  1. Анализ

  2. Проектирование — разработка комплекса алгоритмов

  3. Кодирование и компиляцию — написание исходного текста программы и преобразование его в исполнимый код с помощью компилятора

  4. Тестирование и отладку — выявление и устранение ошибок в программах

! при тестировании положительным будет являться результат «ошибки найдены»

  1. Испытания и сдачу программ

  2. Сопровождение

Информатика как научная дисциплина предлагает и использует технологию разработки программного обеспечения на базе методов структурного программирования.

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

Типы базовых конструкций структурного программирования:

  1. последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;

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

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

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

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

Разработка программы ведётся пошагово, методом «сверху вниз».

Парадигма программирования

ПАРАДИГМА — в методологии науки — совокупность ценностей, методов, технических навыков и средств, принятых в научном сообществе в рамках устоявшейся научной традиции в определенный период времени.

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

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

Декларативное программирование

Согласно первому определению, программа «декларативна», если она описывает каково́ нечто, а не как его создать. Другими словами, декларативное программирование - это совокупность описания входных данных и описания искомого результата.

Согласно второму определению, программа «декларативна», если она написана на исключительно функциональном, логическом или константном языке программирования.

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

Функциональное программирование

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

Императивное программирование

Императивное программирование характеризуется последовательным, пошаговым изменением состояния вычислителя. При этом управление изменениями полностью определено и полностью контролируемо.

Императивные языки программирования противопоставляются функциональным и логическим языкам программирования.

Автоматное программирование

Автоматное программирование — это парадигма программирования, при использовании которой программа или её фрагмент осмысливается как модель какого-либо формального автомата.

Логическое программирование

Логическое программирование - программирование в терминах фактов и правил вывода, с использованием языка, основанного на формальных исчислениях.