Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Семестр1.doc
Скачиваний:
3
Добавлен:
19.09.2019
Размер:
1.03 Mб
Скачать

2.5 Практические рекомендации по решению задач

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

Особое внимание следует уделить обозначениям, используемым в алгоритме. Имена объектов алгоритма должны соответствовать смыслу обозначаемых ими объектов, но не забывайте, что эти же имена нужно будет использовать и в тексте программы на ТР, поэтому позаботьтесь о том, чтобы эти имена были допустимы в языке ТР.

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

2.6. Понятие о файловой системе

В современных операционных системах хорошо развиты средства поддержки файловой системы. Для уверенной работы за ПК необходимо уметь ориентироваться в существующей файловой структуре и выполнять основные операции поддержки файловой системы – создание , удаление, переименование, копирование и перенос файлов и папок.

2.7. Интегрированная среда ТР

Для создания программ на языке ТР необходимо освоить работу в интегрированной среде ТР. Интегрированная среда ТР содержит встроенный редактор, транслятор и сервисные средства. Необходимо научиться набирать и редактировать текст программ, компилировать, выполнять и просматривать результаты работы программы.

Лекция 3

3.1 Проект программы

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

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

  2. Выбор типов данных, соответствующих параметрам объекта исследования, выбор имен констант, переменных, процедур и функций, соответствующих этим параметрам и описывающих функционирование объекта исследования.

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

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

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

Каждый из перечисленных пунктов требует глубокого осмысления и будет уточняться по мере изложения материала текущего курса. Попробуйте на базе материала 1 и 2 лекций при выполнении лабораторных работ максимально проработать позиции проекта программы.

3.2. Частные случаи для структуры цикла

Полный цикл с) пункта 1.4 редко используется при разработке алгоритмов. При решении конкретных задач используются частные случаи этого цикла, в которых отсутствует один из блоков – либо Ф1, либо Ф2. Можно строго математически доказать, что этих двух частных случаев цикла достаточно для организации любого цикла.

Решим такую задачу: написать программу, вычисляющую сумму

S=1-1/2+1/3-1/4+1/5-1/6-...+1/999-1/n.

В этом решении использован полный цикл. Однако, нетрудно видеть, что подалгоритм «Накопление» можно реализовать по-другому. Сравните представленные ниже реализации:

Обратите внимание на то, что тело цикла с постусловием обязательно будет выполнено хотя бы один раз при любом значении n и начальном значении параметра цикла i, тогда как при начальном значении параметра цикла i > n тело цикла с предусловием не будет выполнено ни разу.

Для реализации цикла с предусловием на языке ТР (как и на многих других языках) удобнее вместо условия выхода из цикла использовать условие продолжения цикла (напоминаю, в блоке решения стрелка влево всегда помечается значением «истина», стрелка вправо – значением «ложь»):

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

Приведем решения поставленной задачи с использованием частных случаев полного цикла:

Цикл с постусловием

Цикл с предусловием

readln(n);

S=0; Zn=1; I=1;

repeat

S=S+Zn/I;

Zn=-Zn;

I=I+1

until I>n;

writeln(S)

readln(n);

S=0; Zn=1; I=1;

while not(I>n) do

begin

S=S+Zn/I;

Zn=-Zn;

I=I+1;

end;

writeln(S)

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

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