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


 

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

13803. Opinion essay 14.71 KB
  Opinion essay Isnt it incredible that nowadays people are mostly judged by appearance I strongly believe that in my country appearance affects the opinion of a person. One more sentence In the first place Russians judge celebrities by appearances. For example Nickolay Baskov wears shiny clothes to show . Moreover we can classify people by age social status i.e. belonging to the social groups. Logic Let us say big chains and gaudy clothes or hippy wear blue jeans and a l...
13804. The topic is different, isn’t it 27 KB
  Opinion essay The topic is different isnt it Have you ever considered that appearance is important in our country In fact the largest number of different people in Russia often to appearance and Russian people judge by clothes figure and cost of things. I strongly believe that it is not right because in my opinion appearances often are very deceptive and dont serve as a criterion to judge people on. In the first place many unconsciously take outward beauty as a sign of in...
13805. Do people in our country judge by appearances 28.5 KB
  Кучер А. Do people in our country judge by appearances Isnt it disappointing that people in our country judge by appearances I strongly believe that appearance is important in our country: the largest number of people judge according to how much somebodys clothes cost how people look like. In the first place people judge you according to your figure body build height weight haircut etc. For example more and more women girls and even men in our country dream about ch...
13806. Isn’t it unfortunate that appearance is very important 24 KB
  Isnt it unfortunate that appearance is very important I strongly believe that a lot of people in my country judge be appearances. Expand your introduction 12 sentences more. In the first place people pay attention to appearance choosing a partner for life. For example a wealthy businessman isnt likely to want to have relationships with a woman who doesnt look attractive. Moreover appearance is important for the choice of a future career and employment. In my opinion not wellg...
13807. How important is appearance in your country 14.44 KB
  How important is appearance in your country Isnt it true that peoples appearance plays a big role in modern society. It seems obvious that appearance can reflect our individuality and our way of life. As far as I am concerned appearance is very important in our country. On the one hand its right to judge people by appearances. If we dont want to look strange we must follow certain rules. For example we usually wear a classic suit or a special uniform and a neat ...
13808. Эссе. Я не хочу обносить стенами свой дом или заколачивать свои окна. Я хочу, чтобы дух культуры различных стран как можно свободнее веял повсюду: не надо лишь, чтобы он сбил меня с ног 15.04 KB
  Я не хочу обносить стенами свой дом или заколачивать свои окна. Я хочу чтобы дух культуры различных стран как можно свободнее веял повсюду: не надо лишь чтобы он сбил меня с ног. Р. Тагор Выбранное мною высказывание посвящено проблеме взаимосвязи взаимозависимости м...
13809. Анализ бязевого двуспального набивного комплекта постельного белья «Куба» торговой марки «Хлопковый Рай» с точки зрения потребителя и производителя 2.24 MB
  Эссэ по микроэкономике на тему: Анализ бязевого двуспального набивного комплекта постельного белья Куба торговой марки Хлопковый Рай с точки зрения потребителя и производителя. Оглавление Продукт:3 О компании.3 О товаре.4 Потребители.7 Производство.8 Р
13810. Анализ товара Печенье Юбилейное с шоколадной глазурью 232.82 KB
  Эссе по предмету Микроэкономика на тему Анализ товара Печенье Юбилейное с шоколадной глазурью Оглавление Введение Краткая справка о компании Характеристики товара Субституты и комплементы Целевая группа потребитель8 Производственный процесс9 За...
13811. Анализ товара: Red Bull Energy Drink 250 ml 72.51 KB
  Эссе по предмету Микроэкономикана тему:Анализ товара: Red Bull Energy Drink 250 ml Оглавление Введение Анализ выбора потребителя Товар Описание товара Свойства товара Недостатки и противопоказания Потребитель Субституты и комплементы Су