Методика решения задач с помощью ЭВМ.

Все решение задачи начинается с проблем.

1. Возникновение задачи связанной с реальной жизнью. Алгоритма для решения задачи.

2. Анализ задачи. Характеристика промежуточных данных (Выходными на одном этапе и входными на другом этапе). Они показывают информационные потоки данных.

3. Формулировка (постановка) задачи.

o Понятна ли, та терминология, которая используется заказчиком (расшифровка терминов)

o Что дано, что требуется получить.

o Каких входных данных не хватает, нет ли лишних входных данных

o Какие сделаны ограничения

o Есть ли соглашения для исполнения задачи

4. Построение математической модели.

o Какие мат.структуры проще всего отражают данные, которые обрабатываются программой.

o Какие мат.действия проще всего отражают существующий алгоритм обработки информации.

5. Замысел задач. Анализ существующих вариантов решения задачи и выбор одного из них.

o Приблизительная стоимость на конкретную задачу.

o Приблизительный срок исполнения

o Затраты

6. Разработка алгоритма для решения задачи.

o Алгоритм должен точно перерабатывать входные задачи данные в выходные.

o Должно затрачиваться минимум усилий.

МЕТОДЫ:

Декомпозиция – способ разбиения одной задачи на несколько более мелких.

Эвристика – способ решения задач восходящих к здравому смыслу (метод моделирования рассуждений человека).

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

Рекурсия – решение выражается через эту же самую задачу, но меньшей размерности (задача сводится сама к себе).

7. Выбор языка программирования.

8. Написание программы.

o Ввод текста программы в память компьютера.

o Трансляция программы – перевод программы с ЯВУ в машинный код.

17Этапы прохождения заданий через ЭВМ.

1.Перенос алгоритма в компьютер

2.Трансляция - перевод программы с языка программирования на объектный режим. В результате получается объектный код. Трансляторы:1Компеляторы(создают объектный код программы); 2Интерпритаторы(объектный

код не создают, они выполняют программу построчно)

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

4. Выполнение.

формула назыв. рекуррентной, если она связывает м/у собой (n+1)членов соседних последовательности.

позволяет определить значение любого члена послед-ти, если заданы её первые n-значений. значеение n, используемое для определения рекуррентной формулы, называют её порядком.

*линейная однородная рукуррент.формула:

A1=a2=a3=1

ai=ai-1+2*ai-2+3*аi-3 (3-го порядка)

*нелинейная рекуррентная формула:

Ai=a2i-1 + cos ai-2 (2-го порядка)

*линейная неоднородная рекуррентная формула:

Ai=ai-1 + 3 (1-го порядка)

*линейная формула с переменными коэффициентами:

Ai=i*ai-1 (1-го порядка)

В программировании рекурсия — вызов функции (процедуры) из неё же самой, непосредственно (простая рекурсия) или через другие функции (сложная рекурсия), например, функция A вызывает функцию B, а функция B — функцию A. Количество вложенных вызовов функции или процедуры называется глубиной рекурсии.

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

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

При обратном ходе рекурсии происходит «разгрузка» стека. Данные, берущиеся оттуда используются для дальнейших операций.

Наши рекомендации