Задание 2.2. Двойные и кратные циклы

Задание 2.2. Двойные и кратные циклы

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

Пример: вычислить с точностью до 10-4.

Тут наружной суммой является сумма по i, а внутренней – сумма по j. Можно рассматривать вычисление этих сумм раздельно, беря во внимание что вычисление внутренней суммы является частью вычисления наружной Задание 2.2. Двойные и кратные циклы суммы, другими словами телом наружного цикла.

Сами суммы в задании никак не обозначены, и им нужно присвоить имена, которые могут быть относительно произвольные: SUM_IN ()внутренняя) и SUM_OUT (наружняя); SUMI и SUMO; S1 и S2 и другие. Так же обозначается и внутреннее слагаемое: SLAG, S и т.д Задание 2.2. Двойные и кратные циклы..

Наружняя сумма по i рассчитывается так же, как и в задании 1. Потому что употребляется счетчик циклов, и количество слагаемых определено, то для ее вычисления справедлив метод, представленный на рис. 12, не считая блока 4. Блок 4 – это не обыденное суммирование, а внутренний цикл по вычислению суммы по j. Таким макаром блок 4 замещается Задание 2.2. Двойные и кратные циклы несколькими блоками, производящими вычисление внутренней суммы. Молвят, что цикл (суммирование) по j вложен в цикл по i.

Внутренняя сумма по j является примером суммы с нескончаемым верхним пределом. Проверка окончания цикла осуществляется последующим образом. Потому что выражение под знаком суммы равномерно убывает с ростом слагаемых в сумме, то приходит момент, когда еще Задание 2.2. Двойные и кратные циклы одно слагаемое станет меньше наперед данного числа e (грубо говоря, точности вычисления сумм), и другие слагаемые будут не много оказывать влияние на конечный итог. Потому, когда выражение под знаком суммы | f (j) | будет меньше e, то вычисления прекращаются и подразумевается, что сумма найдена с данной точностью Задание 2.2. Двойные и кратные циклы. Если вероятны отрицательные значения под знаком суммы, то непременно нужно использовать функцию вычисления модуля, потому что число -10 меньше 10-4 (0.0001), но данная точность еще не достигнута.

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

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

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

Не считая значения суммы на экран при отладке полезно вывести значение счетчика циклов Задание 2.2. Двойные и кратные циклы, другими словами выяснить, из скольких слагаемых состоит любая сумма.

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

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

Варианты заданий контрольной работы приведены в табл. 4.


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

№ вар. Вычислить Точность вычислений e
10 -3
10 -4
10 -3
10 -4
10 -3
10 -4
10 -3
10 -4
10 -3
10 -4

Продолжение табл. 4

10 -3
10 -4
10 -3
10 -4
10 -3
10 -4
10 -3
10 -4
10 -3
10 -4

Окончание табл. 4

10 -3
10 -4
10 -3
10 -4
10 -3
10 -4
10 -3
10 -4
10 -3
10 -4

ПРИЛОЖЕНИЕ А

Таблица 5. Главные команды встроенной инструментальной оболочки Турбо Паскаль 7.0

Команда меню «Горячая клавиша» Функция
- F10 Активизация строчки Задание 2.2. Двойные и кратные циклы меню
- Вызов локального меню
- Открытие озаглавленного избранной литерой подчиненного меню из строчки меню
New - Создание нового окна с именованием NONAMEnn.PAS для ввода программки
File/ Open F3 Открытие нового окна и загрузка в него избранного файла
File/ Save F2 Сохранение на диске файла из активного окна. Если Задание 2.2. Двойные и кратные циклы было сотворено новое окно, выполнится команда Save as
File/ Save as - Сохранение на диске файла из активного окна с запросом на новое название файла
File/ Cnange dir - Смена текущей директории
File/ Exit Окончание сеанса работы с Турбо Паскалем с сохранением (после доказательства) файлов, модифицированных текстовым редактором
Edit/ Undo Отмена всех конфигураций Задание 2.2. Двойные и кратные циклы в текущей строке
Edit/ Cut Перенос выделенного блока в буфер промежного хранения

Продолжение табл. 5

Edit/ Copy Копирование блока в буфер промежного хранения
Edit/ Paste Копирование блока из буфера промежного хранения в окно редактирования
Edit/ Clear Удаление выделенного блока
Run/ Run Компиляция и выполнение программки под управлением встроенной инструментальной оболочки
Run Задание 2.2. Двойные и кратные циклы/ Step over F8 Трассировка программки пооператорно с выполнением подпрограмм без пооператорной детализации
Run/ Trace Into F7 Трассировка программки пооператорно с пооператорным выполнением всех подпрограмм
Run/ Go to Cursor F4 Выполнение программки, расположенной в активном окне, до позиции курсора
Run/ Program Reset Установка программного счетчика на начало программки и Задание 2.2. Двойные и кратные циклы закрытие всех ранее открытых программкой файлов
Compile/ Compile Компиляция программки из активного окна
Compile/ Make F9 Компиляция и редактирование связей программки
Compile/ Destination Memory/Disk - Место компиляции программки: или в оперативку, или на диск
Debug/ Call Stack Открытие окна протокола применяемых процедур

Окончание табл. 5

Debug/ User Screen Задание 2.2. Двойные и кратные циклы Переключение на пользовательский экран
Debug/ Evaluate/ Modify Просмотр и изменение значений переменных
Debug/ Add Watch Дополнение перечня переменных, наблюдаемых в Watch-окне
Option/ Save TURBO.TP - Сохранение конфигурации ИИО в файле TURBO.TP
Window/ Size/ Move Изменение положения и размера окна
Window/ Zoom F5 Изменение (повышение/ уменьшение) размера активного Задание 2.2. Двойные и кратные циклы окна
Window/ Next F6 Переход к последующему окну
Window/ Previous Возврат к предшествующему окну
Window/ Close Закрытие активного окна
Window/ List Вызов окна, в каком содержится перечень всех открытых окон
- Переход к окну с обозначенным номером
- F1 Активизация окна контекстно-зависимой помощи
Help/ Previous topic Возврат к предшествующей справке
Help/ Topic search Задание 2.2. Двойные и кратные циклы Активизация синтаксической справки, другими словами справки об операторе, на который показывает маркер
Help/ Index Вызов содержания справочной подсистемы

ПРИЛОЖЕНИЕ Б

Таблица 6. Команды текстового редактора. Управление курсором

Кнопки Действие
Стрелка ввысь Курсор переводится на одну строчку ввысь
Стрелка вниз Курсор переводится на одну строчку вниз
Стрелка на лево Курсор переводится на одну Задание 2.2. Двойные и кратные циклы позицию на лево
Стрелка на право Курсор переводится на одну позицию на право
Курсор переводится на одно слово на лево
Курсор переводится на одно слово на право
Home Курсор переводится на начало строчки
End Курсор переводится в конец строчки
Курсор переводится на первую строчку экрана
Курсор Задание 2.2. Двойные и кратные циклы переводится на последнюю строчку экрана
PgUp Продвижение по файлу на одну страничку вспять
PgDn Продвижение по файлу на одну страничку вперед
Курсор переводится в начало файла
Курсор переводится в конец файла
Экран двигается «вверх» по тексту (при всем этом курсор неподвижен)
Экран двигается «вниз» по тексту ( курсор неподвижен)
+B Задание 2.2. Двойные и кратные циклы Курсор переводится в начало блока

Продолжение табл. 6

+K Курсор переводится в конец блока
+P Курсор перемещается на начальную позицию после поиска
Ввод специального знака
Вставка и удаление
Del Удаление знака, указываемого курсором
Ins Переключение меж режимами вставки и подмены
BackSpace Удаление знака слева от курсора
Удаление слова справа от Задание 2.2. Двойные и кратные циклы курсора
+Y Удаление части строчки от курсора до конца строчки
Удаление строчки, указываемой курсором
+L Восстановление строчки, удаленной композицией кнопок , в том месте текста, где она была размещена
Вставка строчки
Операции с блоками
Расширение маркируемого блока
+B Указание начала маркируемого блока
+K Указание конца маркируемого блока
+T Маркирование слова
+H Снятие/ восстановление Задание 2.2. Двойные и кратные циклы маркировки
+I Сдвиг маркированного блока на право

Продолжение табл. 6

+U Сдвиг маркированного блока на лево
+C Копирование маркированного блока в то место, где установлен курсор
+V Перенос маркированного блока в то место, кде установлен курсор
Копирование маркированного блока в буфер промежного хранения (Edit/ Copy)
Перенос маркированного блока Задание 2.2. Двойные и кратные циклы в буфер промежного хранения (Edit/ Cut)
Копирование маркированного блока из буфера промежного хранения в то место, где установлен курсор (Edit/ Paste)
+Y Удаление маркированного блока
+P Печать маркированного блока (File/ Print)
+R Вставка текста из файла в позицию, указываемую курсором (Read)
+W Запись блока в файл (Write)
+F Тумблер Задание 2.2. Двойные и кратные циклы режима наполнения, позволяющий улучшить наполнение интервалов меж словами (пробелами/ табуляциями) (Options/ Env./ Editor/ Optimal Fill)

Окончание табл. 6

Поиск и подмена
+F Поиск обозначенной строчки (Search/ Find). Для указания опций раскрывается особое окно
+A Поиск обозначенной строчки и подмена(Search/ Replace). Для указания опций раскрывается особое окно
+[ Поиск разделителя Задание 2.2. Двойные и кратные циклы ({, [, (, ",'), парного по отношению к указываемому курсором (комфортно находить границы комментариев)
+] Поиск разделителя (], }, ), ",'), парного по отношению к указываемому курсором
+ Установка отметки в тексте. n - цифра от 0 до 9
+ Перевод курсора на отметку в тексте. n - цифра от 0 до 9
+W Перевод курсора на позицию, где дано сообщение об ошибке
Продолжение поиска/ подмены с установленными Задание 2.2. Двойные и кратные циклы ранее опциями
Прерывание поиска/ подмены

Перечень литературы

1. Зуев Е.А. Язык программирования Turbo Pascal 6.0, 7.0. – М.: Веста, Радио и связь, 1993.

2. Климова Л.М. PASCAL 7.0: Практическое программирование. Решение типовых задач.: Учебное пособие. – М.,: 2000.

3. Немюгин С.А. TURBO PASCAL – СПб, 2000.

4. Турбо Паскаль 7.0. Самоучитель. – СПб.: Питер; К.: Издательская группа BHV, 2002. – 416 с.: ил Задание 2.2. Двойные и кратные циклы.

5. Фаронов В.В. Турбо Паскаль 7.0. Исходный курс. Учебное пособие. – М.: «Нолидж», 1999. – 616 с., ил.

6. Федоренко Ю. Методы и программки на Turbo Pascal. Учеб. Курс. – СПб.: Питер, 2001.



zadanie-3-rasschitajte-kolichestvo-sirya-neobhodimogo-dlya-prigotovleniya-supa.html
zadanie-3-relyacionnaya-logika.html
zadanie-3-reshite-situacionnie-zadachi-s-primeneniem-teoreticheskih-znanij.html