Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Консп лек Информатика профиль ФиК.doc
Скачиваний:
75
Добавлен:
24.11.2019
Размер:
3.65 Mб
Скачать

Пример вложенных циклов для

  Вычисление суммы элементов заданной матрицы А(5,3)

            Матрица А              

S := 0;

нц для i от 1 до 5

  нц для j от 1 до 3

    S:=S+A[i,j]

  кц

кц

Пример вложенных циклов пока

Вычисление произведения тех элементов заданной матрицы A(10,10), которые расположены на пересечении четных строк и четных столбцов.

i:=2; P:=1

нц пока i <= 10

  j:=2

  нц пока j <= 10

    P:=P*A[i,j]

    j:=j+2

  кц

  i:=i+2

кц

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

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

    1. Технологии программирования.

Основные подходы к программированию:

  • структурный, модульный;

  • функциональный;

  • логический;

  • объектно-ориентированный;

  • смешанный (некоторые подходы возможно комбинировать);

  • компонентно-ориентированный (программный проект рассматривается как множество компонент, такой подход принят, в частности, в .NET);

  • чисто объектный (идеальный с математической точки зрения вариант, который пока не реализован практически).

      1. Структурное программирование

Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.

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

Тремя элементарными структурными алгоритмами являются следующие:

1 Следование, или цепочка, или составная инструкция.

2 Выбор, или ветвление, или условная инструкция.

3 Цикл, или возврат, или циклическая инструкция.

В 1981 году Дональд Кнут разработал концепцию «грамотного программирования» как альтернативу «структурному программированию» при разработке системы компьютерной вёрстки. Несмотря на доказанную эффективность, данная концепция не получила распространения из-за непонимания.

Сутью структурного программирования является возможность разбиения программы на составляющие элементы.

Структурное программирование предполагает:

  • точно обозначенные управляющие структуры,

  • программные блоки,

  • отсутствие инструкций безусловного перехода (GOTO),

  • автономные подпрограммы,

  • поддержка рекурсии и локальных переменных.

В соответствии с методологией структурного программирования:

  1. Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:

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

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

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

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

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

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

  3. Документация должна создаваться одновременно с программированием в виде комментариев к программе.

Распространены две методики (стратегии) разработки программ, относящиеся к структурному программированию: программирование «сверху вниз» и программирование «снизу вверх».

Достоинства структурного программирования:

1 повышается надежность программ (благодаря хорошему структурированию при проектировании, программа легко поддается тестированию и не создает проблем при отладке);

2 повышается эффективность программ (структурирование программы позволяет легко находить и корректировать ошибки, а отдельные подпрограммы можно переделывать (модифицировать) независимо от других);

3 в структурированных программах логически связанные операторы находятся визуально ближе, а слабо связанные — дальше, что позволяет обходиться без блок-схем и других графических форм изображения алгоритмов (по сути, сама программа является собственной блок-схемой);

4 уменьшается время и стоимость программной разработки;

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

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