66518

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

Лабораторная работа

Информатика, кибернетика и программирование

Если число повторений известно заранее до начала повторений то в этом случае всегда используется оператор цикла с параметром for. Такой оператор предусматривает изменение управляющей переменной параметра цикла по правилу прогрессии с шагом 1 и повторное выполнение некоторого...

Русский

2014-08-22

225 KB

0 чел.

ЛАБОРАТОРНАЯ РАБОТА № 3

Освоение технологии структурного программирования

при разработке и создании программы на языке Турбо Паскаль

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

Цели работы:

1. Освоение методики нисходящей разработки (проектирования) программы методом пошаговой детализации с помощью псевдокода при решении задач с помощью ПК.

2. Освоение методов структурного программирования при разработке и создании программы на языке Турбо Паскаль для циклического вычислительного процесса с известным числом повторений.

3. Овладение выразительными средствами графики языка ТП для повышения читаемости программы.

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

5. Приобретение навыков алгоритмизации и программирования на алгоритмическом языке Паскаль

6. Освоение средств исследования программы.

7. Освоение методики тестирования программы.

Теоретические сведения

Вычислительный процесс, содержащий один или несколько циклов, называется циклическим. Циклы (операторы повторения) предусматривают повторяющееся выполнение некоторых операторов. Если число повторений известно заранее (до начала повторений), то в этом случае всегда используется оператор цикла с параметром for. Такой оператор предусматривает изменение управляющей переменной (параметра цикла) по правилу прогрессии с шагом 1 и повторное выполнение некоторого оператора (в том числе составного) до достижения конечного значения. Цикл с параметром имеет следующий вид:

for <параметр цикла> := <начальное значение> to <конечное значение> do

 <оператор>;

или

for <параметр цикла> := <начальное значение> downto <конечное значение> do

 <оператор>;

Параметр цикла, начальное и конечное значение должны быть одного и того же перечислимого типа и не должны изменяться внутри цикла. Если при спецификации to (downto) начальное значение больше (меньше) конечного значения, то цикл не выполняется. При нормальном выходе из цикла с параметром значение параметра остается неопределенным.

Например, чтобы напечатать в цикле значения параметра цикла, нам понадобится такая конструкция цикла с параметром for (рис. 3.1):

Блок-схему работы цикла for, приведенного на рис. 3.1 можно изобразить как показано на рис. 3.2.

То есть, Вы можете представить себе алгоритм циклической структуры for в виде последовательности таких действий и соответствующих им операторов:

 подготовка цикла: задание начального значения параметру цикла – i := 1;

 проверка, не достигнуто ли конечное значение параметра цикла –i <= 10 (если конечное значение параметра цикла будет равно 0, то тело цикла, т. е. оператор WrietLn(‘i = ’, i) не выполнится и далее будет выполняться оператор, следующий за оператором цикла);

 выполнение тела цикла: действия, которые повторяются в цикле с использованием последовательно изменяющихся значений переменной цикла;

 модификация (изменение) значения переменной цикла на единицу перед каждым новым его повторением. Далее – переход на пункт 2.

При конструировании структуры цикла Вы должны помнить следующие правила:

– оператор в теле цикла может быть простым либо составным (т. е. включать любые операторы языка ТП: простые, условные, циклические и т. д.), или даже пустым, когда точка с запятой «;» ставится сразу за словом do;

– начальное и конечное значения параметра цикла не могут быть типа Real, а только целого или перечислимого типов, при этом шаг параметра цикла всегда постоянен и равен «интервалу» между двумя ближайшими значениями выбранного типа;

– в теле цикла нельзя принудительно изменять переменную цикла;

– при необходимости получения внутри цикла шага отличного от единицы Вы должны ввести дополнительную переменную;

– для получения убывающего параметра цикла вместо слова to ставится downto и, соответственно, меняются местами начальное и конечное значения параметра цикла;

– циклическая структура for используется только в тех случаях, когда наперёд известно количество повторений цикла!

При проектировании алгоритма циклического вычислительного процесса в структурном программировании используется структура цикл, которая в контексте синтаксиса языка ТП для рассматриваемого случая может представляться в виде for-to-do (ЦИКЛ-ОТ-ДО).

И, соответственно, код на языке ТП для (рис. 3.1) будет иметь вид (рис. 3.4):

Рассмотрим последовательно все этапы создания программы циклического вычислительного процесса с известным числом повторений на конкретном примере.

1. Условие задачи:

Вычислить значение конечной суммы:

.

(3.1)

2. Решение задачи в ее предметной области, в данном случае – это высшая математика. Например, при n = 3 выражение (3.1) будет иметь вид:

.

(3.2)

Здесь Вы должны обратить внимание на то, что каждое последующее слагаемое в (3.2) получается из предыдущего домножением на a предыдущего.

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

Ввести данные Summa

Выполнить вычисления Summa

Вывести результаты Summa

С учетом требований к «дружественности» интерфейса, детализация псевдокода Ввести данные Summa дает следующее:

Вывести на экран приглашение для ввода a

Ввести a

Вывести на экран приглашение для ввода n

Ввести n

Детализация псевдокода Выполнить вычисления Summa дает следующее:

power присвоить 1

ЦИКЛ ОТ i=1 ДО n

 power умножить на а

 к S добавить power

Детализация псевдокода Вывести результаты Summa дает следующее:

Вывести название и содержимое ячейки S

4. Выполняем структурное программирование с использованием структуры цикл:

BEGIN

 ClrScr; { Очищаем экран }

 Write(‘Введите значение a = ’);

 ReadLn(a);

 Write(‘Введите значение n = ’);

 ReadLn(n);

 { Подготовка к циклу }

 power := 1; { Начальное значение перед умножением на a }

 for i:=1 to n do

   begin

     power := power*a; { Получаем степень а }

     S := S+power;     { Суммируем в S }

   end;

 WriteLn(‘S = ’, S:4:2);

 ReadLn

END.

5. Проектируем структуры данных (их имена и типы). Понятно, что все имена, входящие в (3.1), нужно описать в программе, т.е. S, a, i, n. Кроме того, нам понадобится некоторая переменная, в которой будет храниться текущее значение степени a. Назовем ее power. Поскольку S, a, power могут иметь дробную часть, то их тип выбираем Real. Поскольку i – переменная цикла, n – конечное значение, то их тип не может быть Real, а только перечислимым, поэтому выбираем Integer.

Значит в разделе описаний программы, назовем ее Summa, с учетом требований о необходимости обеспечения удобочитаемости программы и размещения необходимых комментариев, поместим следующие описания:

Var

 S,            { сумма }

 a,            { значение a }

 power : Real; { текущее значение степени a }

 i,            { переменная цикла }

 n : Integer;  { конечное значение цикла }

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

6. Отладка программы. Отладка программы – это процесс поиска и устранения синтаксических ошибок в готовой программе. Обычно отладка предшествует стадии тестирования. В этом пункте необходимо привести скриншот результата работы готовой программы (см. п. 5 Лаб. раб № 1).

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

Тестовый пример для нашей задачи будет включать вычисление S при а=2 и n=3:

S = 2+22+23 = 14.

Теперь Вам необходимо провести исследование Вашей программы и убедиться, что вычислительный процесс действительно является циклическим с помощью дебаггера, то есть отладчика программ (см. п. 7 Лаб. раб № 1). Здесь Вы должны исследовать поведение переменных S, power, i структуры for-to-do (рис. 3.5).

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

9. Для защиты лабораторной работы:

9.1. Представить отчет по лабораторной работе в печатном виде.

9.2. Продемонстрировать умение исследовать свою программу.

9.3. Решить любую другую задачу из списка заданий.

9.4. Ответить на вопросы:

9.4.1. Поясните, что такое цикл?

9.4.2. Для чего нужен параметр цикла?

9.4.3. Для чего служит конечное значение параметра цикла?

9.4.4. Поясните логику выполнения циклов:

for ... to ... do  и

for ... downto ... do.

9.4.5. Какие переменные могут использоваться в качестве параметра цикла for? Какие переменные могут использоваться в качестве границ диапазона для параметра цикла for?


ЗАДАНИЯ К

ЛАБОРАТОРНОЙ РАБОТЕ № 32

  1.  Вычислить значение конечной суммы: .
  2.  Вычислить значение конечной суммы: .
  3.  Вычислить значение конечной суммы: .
  4.  Вычислить значение конечной суммы: .
  5.  Вычислить значение конечной суммы: .
  6.  Вычислить значение конечной суммы: .
  7.  Вычислить значение конечного произведения: .
  8.  Вычислить значение конечного произведения: .
  9.  Вычислить значение конечного произведения: .
  10.  Вычислить значение конечного произведения: .
  11.  Вычислить значение конечного произведения: .
  12.  Вычислить значение конечного произведения: .
  13.  Вычислить значение конечного произведения: .
  14.  Вычислить значение конечного произведения: .
  15.  Вычислить значение конечного произведения: .
  16.  Вычислить значение конечного произведения: .
  17.  Вычислить значение конечной суммы: .
  18.  Вычислить значение конечной суммы: .
  19.  Вычислить значение конечной суммы: .
  20.  Вычислить значение конечной суммы: .
  21.  Вычислить значение конечной суммы: .
  22.  Вычислить значение конечной суммы: .
  23.  Вычислить значение конечной суммы: .
  24.  Вычислить значение конечной суммы: .
  25.  Вычислить значение конечного произведения: .

ЦИКЛ ОТ i=1 ДО 10

 Печатать параметр цикла

Рис. 3.3. Псевдокод для цикла for-to-do (ЦИКЛ-ОТ-ДО) для (рис. 3.1)

Рис. 3.4. Код на языке ТП для цикла for-to-do (ЦИКЛ-ОТ-ДО) для (рис.3.1)

for i:=1 to 10 do

 WriteLn(‘i = ’,i);

Рис. 3.1. Конструкция цикла с параметром for

Параметр цикла i

Принимает значения:

1, 2, 3, 4, 5,

6, 7, 8, 9, 10

for i:=1 to 10 do

  WriteLn(‘i = ’, i);

Рис. 3.5. Исследование структуры for-to-do

Начальное значение параметра цикла

Конечное значение параметра цикла

Ключевое слово for

Оператор, повторяемый в цикле десять раз

i <= 10

WrietLn(‘i = ’, i);

Рис. 3.2. Блок-схема цикла for, приведенного на рис. 3.1

i := i+1

i := 1

Истина

Ложь

Задание начального значения параметру цикла

Проверка, не достигнуто ли конечное значение параметра цикла

Тело цикла – только один оператор (либо – составной)

Приращение параметра цикла на 1


 

А также другие работы, которые могут Вас заинтересовать

22952. Облік грошових коштів 113 KB
  Облік і контроль касових операцій і грошей в касі. Облік створення і використання фонду дрібних сум. Документальне оформлення і облік операцій по банківських рахунках. Облік короткострокових фінансових інвестицій.
22953. Школи Китайські 34.5 KB
  Ми почнемо з того що філософія як форма духовної діяльності має історичність. Філософія це ідейний діалог мислителів різних епох. Антична філософія 2. Середньовічна філософія.
22954. Продовжимо Елінізм 55.5 KB
  Людина гріховна лише бог безгрішний. Філософ має бути моральним проповідником волі Бога. В цей час провідна роль в культурі належала церкві філософія розглядалась як служниця богословя теологія. Філософія галузь яка веде до більш високого знання богословя.
22955. Західноєвропейська філософія нового часу 53 KB
  Просвітництво 18ст. Ідеалізм або матеріалізм залежить від того як співвідноситься почуття зі світом. Поза нами існує матеріальний світ незалежний від нас явища цього світу впливають на наші органи почуття в нас виникають чуттєві образи цих явищ. Перш ніж пізнавати навколишній світ і природу треба підготувати свою свідомість подолати перешкоди ідоли або примари свідомості.
22956. Естетика 50 KB
  Історичний матеріалізм це є поширення поглядів матеріалізму на суспільне життя на людську історію. Фактично ці умови життя визначаються напрямком нашої свідомості. Тобто поступово переходимо на іншу позицію що засадою нашого суспільства і життя не є розум. Світова воля Шопенгауер біологічне життя Ніцше несвідоме життя Фрейд.
22957. Особливості сучасної західної філософії. Вітчизняні філософські традиції 54 KB
  Антропологізм ця тенденція орієнтує філософію на дослідження людини і світу культури. Сутність тенденції виражають наступні ідеї: вивчення життя окремої людини стоїть вище є більш значним ніж вивчення великих людських спільнот класів народів націй. відмова від розуміння сучасної людини як свободної і розумної здатної переробляти світ. Відмова від такого розуміння і перехід до розуміння людини яка жорстко обумовлена економікою політикою релігією та ін.
22958. Проблема свідомості 62.5 KB
  Свідомість самосвідомість мова. Проблема свідомості одна з найбільш важливих для дослідження і одна з найбільш загадкових оскільки свідомість не існує як окремий предмет дослідження. Свідомість присутня в кожному образі думці поєднує наші почуття і думки. Свідомість завжди проявляється через якийсь конкретний зміст який виражається думками знаннями образами.
22959. Психіка людини 56 KB
  Голодна людина має енергію скеровану на пошук їжі. Людина народжується в суспільстві яке задає певні правила виховання. Людина деякі з цих правил бере добровільно в свою свідомість як ті правил яким вона буде підкорятись. Людина перестає контролювати себе і відчуває певне задоволення.
22960. ПИТАННЯ ПРО ПРИРОДУ ЛЮДИНИ 68 KB
  Питання сутності людини це питання про те які глибинні людські якості визначають специфіку людини і проявляється зовні в її природі. Природи людини дуже суперечлива. Наші біологічні властивості це лише передумови виникнення людини а якщо не буде соціальних умов то людина не виникне.