Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций_2015.doc
Скачиваний:
36
Добавлен:
03.03.2016
Размер:
532.48 Кб
Скачать

4 Методы решения задач программирования

4.1 Требования к методам

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

  2. Типы и структуры данных в методе соответствуют языку программирования.

  3. Метод должен обладать свойствами точность, понятность, недвусмысленность.

  4. Метод должен быть рациональным.

4.2 Способы описания

  1. Математический.

  2. Словесный.

  3. Графический.

4.3 Классификация методов

Различают две группы методов: универсальные, специальные.

4.3.1 Универсальный метод

Универсальным методом является метод пошаговой детализации, который также называют методом “Разделяй и властвуй”.

Пусть дана задача T с исходными данными: вектор X, – и результатами: Y. Необходимо найти функцию Y = F(X) с помощью известных методов.

Для этого разобьём задачу на подзадачи: каждая со своими исходными данными и результатами. Разбиение нужно продолжать до тех пор, пока хотя бы одну задачу нельзя решить известными методами. Общая схема разбиения представлена на рисунке 4.1

4.3.2 Специальные методы

Существуют три основных специальных метода:

  1. накопление,

  2. перебор,

  3. метод последовательных приближений (итераций).

4.3.2.1 Язык для записи методов

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

  1. последовательность,

  2. ветвление,

  3. повторение,

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

  1. В каждую конструкцию есть ровно один вход, из нее есть один выход.

  2. Конструкция повторения конечна.

Используя эти конструкции можно решить любую задачу.

Операторы языка записей методов:

  1. Последовательность– запись операторов последовательно друг за другом по вертикали:

<действие>

<действие>

<действие>

  1. Ветвление –

<действие>

при <условие>

  1. Повторение

  • С известным числом повторений

<действие>

1,n

  • С неизвестным числом повторений

<действие>

пока <условие>

4.3.2.2 Метод накопления

Пример 4.1

Найти сумму элементов массива.

1 Постановка задачи

    1. Исходные данные

x: массив [1..N]: вещественных;

N: целое;

    1. Ограничения

N>0

    1. Результаты

S:вещественное;

    1. Связь

2 Метод

i=1,N

S=0

Промежуточные данные

i:целое;

Пример 4.2

Найти произведение элементов массива.

1. Постановка задачи

    1. Исходные данные

x: массив [1..N]: вещественных;

N: целое;

1.2 Ограничения

N>0

1.3Результаты

P:вещественное;

1.4 Связь

2Метод

i=1,N

P=1

Промежуточные данные

i:целое;

4.3.2.3 Метод перебора

Пример 4.3

Найти количество положительных элементов массива.

  1. Постановка задачи

1.1 Исходные данные

x: массив [1..N]: вещественных;

N: целое;

    1. Ограничения

N>0

1.3 Результаты

K:целое;

1.4 Связь

2 Метод

при ai>0 для i=1,N

K=0

Промежуточные данные

i:целое;

Пример 4.4

Найти минимум и его номер.

1 Постановка задачи

1.1 Исходные данные

x: массив [1..N]: вещественных;

N: целое;

1.2 Ограничения

N>0

1.3Результаты

min:вещественное;

num:целое

1.4 Связь

min=минимум(ai);

num=номер(min);

2Метод

min= ai при ai<min для i=1,N

num=i

min= a1

num=1

Промежуточные данные

i:целое;

4.3.2.4 Метод последовательных приближений

Пример 4.5

Вычислить по формуле

с заданной точностью.

1 Постановка задачи

    1. Исходные данные

x: вещественное; {аргумент}

:вещественное; {точность}

    1. Ограничения

>0

    1. Результаты

Y:вещественное;

    1. Связь

Если

  1. Метод

Операция факториал (!) недоступна, заменяем умножением

n=n*i

i=i+1

где n- факториал, i-аргумент.

Объединяем оба метода

Промежуточные данные

S:вещественное {i-ая степень x}

n:елое{факториал}

i:целое{номер итерации}