Файл: Методические указания по выполнению лабораторных работ для студентов очной формы обучения. Псков, Издво ПсковГУ, 2017. 50 с.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 02.02.2024

Просмотров: 247

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Введение

Общие положения

Основные сведения об алгоритмах

Язык Паскаль и интегрированные среды разработки программ

Отладка и выполнение программы

Порядок выполнения лабораторных работ

Лабораторная работа № 1. Программирование формул

Лабораторная работа № 2. Ветвящиеся алгоритмы

Лабораторная работа № 3.Циклы с известным числом повторений

Лабораторная работа № 4.Циклы с заранее неизвестным числом повторений

Лабораторная работа № 5.Средства вывода. Таблицы

Лабораторная работа № 6.Двойные и кратные циклы

Лабораторная работа № 7.Сортировка массивов

Лабораторная работа № 8.Подпрограммы – функции

Лабораторная работа № 9.Подпрограммы – процедуры

Лабораторная работа № 10.Работа с файлами и строками

Лабораторная работа № 11. Динамические переменные. Списки

Лабораторная работа № 12.Графический режим монитора. Построение графиков

Приложение А. Основные стандартные функции

Приложение Б. Отличия языка ИСР PascalABC.NET от Delphi

Литература

Лабораторная работа № 3.
Циклы с известным числом повторений


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

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

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



Прежде чем вычислять выражение под знаком суммы и очередную частичную сумму, необходимо определить начальное значение параметра цикла (в данном случае i, которое изменяется от 1 до 10 с шагом 1, то есть i будет принимать последовательно значения 1, 2, 3, 4, ..., 9, 10), и начальную частичную сумму S. Так как вычисления еще не производились, то S = 0.

Затем вычисляется выражение под знаком суммы для i = 1, затем i = 2, 3, ... до 10 и каждый раз складывается с предыдущей частичной суммой S i-1. При этом получается новая частичная суммаS i. После этого i увеличивается на единицу и проверяется, не стало ли i > 10. Если еще меньше или равно 10, то вычисляется новая частичная сумма, в противном случае вычисление суммы будет закончено, и это значение выводится на печать.

Воспользуемся стандартной схемой циклического процесса, представленной на рис.6.1.

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

В блоке 2 производится вычисление выражения, стоящего под знаком суммы и сложение с предыдущей частичной суммойS i-1. В итоге получается новая частичная сумма
S i.

В блоке 3 происходит изменение параметра цикла (увеличение i на 1). Это блок подготовки к новому циклу.

Блок 4 – блок проверки окончания цикла. Необходимо проверить, стало ли i больше 10. Если стало, то цикл закончен, следующим должен выполняться блок печати. Если нет, то вычисление частичной суммы продолжается дальше, то есть выполняются блоки 2 и 3.

Проверка может осуществляться условным оператором IF, но для организации циклов в языке Паскаль специально предусмотрены три оператора цикла. Если количество повторений заранее известно, и параметр является целым числом, то целесообразно использовать оператор FOR, включающий в себя блоки 1, 3, 4. В этом случае в алгоритме можно применить блок «Модификация».

Алгоритм для примера с использованием оператора FOR приведен на рис.6.2. Варианты заданий – в табл.6.1.



Рис. 6.1. Блок-схема алгоритма циклического процесса



Рис. 6.2. Блок-схема алгоритма примера.

Таблица 6.1. Варианты заданий


№ вар.

Вычислить сумму

№ вар.

Вычислить сумму

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



26



27



28



29



30




Лабораторная работа № 4.
Циклы с заранее неизвестным числом повторений


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

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

Так как количество слагаемых заранее неизвестно, то циклом FOR пользоваться нельзя. Для этих целей предназначаются циклические операторы WHILE и REPEAT. Необходимо помнить, что у этих операторов параметр цикла автоматически не изменяется, и его надо менять принудительно. Поэтому при составлении блок-схемы алгоритма блок «Модификация» не используется.

При вычислении суммы должен вычисляться факториал по формуле:



Где П – знак произведения (аналогично знаку суммы), то есть 5! = 1· 2· 3· 4· 5 = 120. Факториал можно вычислить отдельным циклом, а можно и в цикле вычисления суммы. Для этого вводится дополнительная переменная, например f = j !, и затем в цикле умножается на текущее значение j.

Кроме значения суммы на печать полезно вывести значение счетчика циклов, то есть узнать, из скольких слагаемых состоит сумма.

Варианты заданий приведены в табл.7.1.

Примечание. В языке Турбо Паскаль под переменные типа INTEGER выделяется два байта, и допустимые для них значения находятся в диапазоне только от -32768 до 32767. Поэтому число 10!, реально равное 3628800, в этом случае будет представлено как 24320. Таким образом, выражение под знаком суммы может никогда и не стать меньше заданной точности. Для работы с большими целыми числами рекомендуется использовать вещественный тип REAL с диапазоном представления от 2.9·10
-39 до 1.7·1038, или, в крайнем случае, целый тип LongInt с диапазоном от ‑2.147.483.648 до 2.147.483.647.

Таблица 7.1. Варианты заданий


№ вар.

Вычислить

При х, равном

Точность вычислений

1



0,149

10 -5

2



5,99

10 -3

3



3,1

10 -4

4



1,91

10 -5

5



1,42

10 -3

6



0,99

10 -4

7



1,51

10 -5

8



3,48

10 -3

9



7,55

10 -4

10



2,15

10 -5

11



0,81

10 -3

№ вар.

Вычислить

При х, равном

Точность вычислений 

12



0,77

10 -4

13



3,95

10 -5

14



1,62

10 -3

15



4,14

10 -4

16



1,24

10 -5

17



3,3

10 -3

18



2,8

10 -4

19



0,95

10 -5

20



4,5

10 -3

21



0,85

10 -4

22



2,4

10 -5

23



1,7

10 -3

№ вар.

Вычислить

При Х, равном

Точность вычислений 

24



4,2

10 -4

25



2,2

10 -5

26



3,1

10 -3

27



1

10 -4

28



8,5

10 -5

29



0,15

10 -3

30



2,9

10 -4