Содержание
-
Циклы в программированиина языке Паскаль
-
Цикл с предусловием
-
While do Пока логическое условие истинно, выполняются операторы, составляющие тело цикла. Цикл может не выполнятся ни разу Необходимые условия: В цикле обязательно должна использоваться переменная, позволяющая циклу завершить работу. До входа в цикл все переменные, используемые в теле цикла, должны иметь численное значение. Логическое условие Тело цикла да нет
-
Рассмотрим три задачи: Найти сумму чисел до заданного N. Найти N! Найти XN
-
При подсчете компьютер выполняет следующие действия: Находит результат для двух первых чисел; Затем к результату прибавляет следующее число; Повторяет эти операции, пока не достигнет последнего (N-ого числа). Следовательно, компьютер должен выполнить N-шагов для достижения результата, то есть 1, 2, 3, …, N-ный шаг. Обозначим через i очередной шаг, который необходимо выполнить компьютеру.
-
Сумма чисел до N: S= 1+2+3. То есть 1шаг S1=1; 2шаг S2=S1+2; 3шаг S3=S2+3. Как видно из примера, на каждом шаге к результату предыдущего шага прибавляется следующее значение. Для подсчета используется несколько раз формула S=S+ Надо заметить, значение в данном случае совпадает с номером шага. Перепишем формулу с учетом этого обстоятельства:S=S+i Рассмотрим подробнее задачу на суммирование. Пусть N=3
-
Распишем суммирование по полученной формуле: 1шаг i=1 S=S+1; 2шаг i=2 S=S+2, где S– значение, полученное на 1шаге 3шаг i=3S=S+3, где S– значение, полученное на 2шаге Остается неопределенным S на первом шаге. Нам надо подобрать такое число, которое при сложении не изменит результат. Это число – 0. Из рассмотренного примера видно, что при изменении N будет изменяться число шагов, но решение задачи изменяться не будет. Следовательно, результат суммирования N чисел для данного примера можно посчитать выполняя N раз формулу S=S+i Задача на суммирование.
-
Обозначим через F результат нахождения факториала. N! при N=3 : F = 1*2*3. То есть 1шаг F1=1; 2шаг F2=F1*2; 3шаг F3=F2*3. Как видно из примера, на каждом шаге результат предыдущего шага умножается на следующее значение. Для подсчета используется несколько раз формула F=F * Надо заметить, значение совпадает с номером шага. Перепишем формулу с учетом этого обстоятельства:F=F*i Рассмотрим подробнее задачу нахождения N! Пусть N=3
-
Распишем задачу по полученной формуле: 1шаг i=1 F=F*1; 2шаг i=2 F=F*2, где F– значение, полученное на 1шаге 3шаг i=3F=F*3, где F– значение, полученное на 2шаге Остается неопределенным F на первом шаге. Нам надо подобрать такое число, которое при умножении не изменит результат. Это число – 1. Из рассмотренного примера видно, что при изменении N будет изменяться число шагов, но решение задачи изменяться не будет. Следовательно, результат поиска N! можно посчитать выполняя N раз формулу F=F*i Задача на нахождение N!
-
Обозначим St результат возведения числа X в степень N. при N=3 : St = X*X*X. То есть 1шаг St1=X; 2шаг St2=St1*X; 3шаг St3=St2*X. Как видно из примера, на каждом шаге результат предыдущего шага умножается на X. Для подсчета используется несколько раз формула St=St * X Рассмотрим подробнее задачу нахождения XN Пусть N=3
-
Распишем задачу по полученной формуле: 1шаг i=1 St=St*X; 2шаг i=2 St=St*X, где St– значение, полученное на 1шаге 3шаг i=3St=St*X, где St– значение, полученное на 2шаге Остается неопределенным St на первом шаге. Нам надо подобрать такое число, которое при умножении не изменит результат. Это число – 1. Из рассмотренного примера видно, что при изменении N будет изменяться число шагов, но решение задачи изменяться не будет. Следовательно, результат поиска XN можно посчитать выполняя N раз формулу St=St*X Задача навозведение числа X в степень N
-
Цикл с предусловием
Рассмотрим условия создания цикла: В цикле обязательно должна использоваться переменная, позволяющая циклу завершить работу. Во всех рассмотренных задачах расчет формулы выполняется пока не будет достигнуто значение N. Исходя из этого, можно сформулировать логическое условие i
-
Рассмотрим условия создания цикла: 2. До входа в цикл все переменные, используемые в теле цикла, должны иметь численное значение. Во всех рассмотренных задачах расчет формулы на первом шаге выполняется при заданном значении переменной, не изменяющей выполняемого арифметического действия. Исходя из этого, можно определить значения переменных до входа в цикл: i:=1; - определяется первый шаг Суммирование – S:=0; Нахождение факториала и степени числа – F:=1; и St:=1; Значение N, а также X (для задачи возведение в степень)задаются вначале программы как данные, вводимые пользователем.
-
Цикл с предусловием на языке Паскаль для трех рассмотренных задач
-
Вводится только количество элементов Входные данные цикла Изменение шага определяет выход из цикла Как только iстановится больше заданного пользователем n цикл заканчивается Выходные данные цикла Подсчет промежуточных результатов внутри цикла. На каждом шаге к результату предыдущего шага прибавляется новый элемент
-
Пример программы и вид окна пользователя
-
Цикл с предусловием
Практическое задание: Напишите программы для рассмотренных задач
-
Рассмотрим некоторые примеры составления формул
-
Распишем получение суммы данного ряда по шагам: S1=0+1/2 S2=S1+1/4 S3=S2+1/6 То есть, как рассматривалось выше, сумма ряда считается по формуле: S=S + . Основой является составление формулы для i-го члена ряда. Подсчитать сумму N членов ряда: 1/2+1/4+1/6+1/8+…
-
Рассмотрим изменение знаменателя слагаемых: 2, 4, 6, 8,…, его можно представить как 2*1, 2*2,2*3, 2*4,…Следовательно, 1шаг S=S+1/2*1 2щагS=S+1/2*2 3шаг S=S+1/2*3 Из примера видно, что числитель слагаемых не изменяется, а в знаменателе один из множителей постоянный, а второй совпадает с номером шага. Следовательно, можно вывести формулу для расчета слагаемых ряда : 1/(2*i). Подсчитать сумму N членов ряда: 1/2+1/4+1/6+1/8+…
-
В рассмотренном выше цикле на суммирование, можно заменить слагаемое iв формуле S:=S+i; на 1/(2*i) и использовать цикл для решения данной задачи, получаем формулу: S:=S+ 1/(2*i); Подобный подход можно использовать во всех, задачах на суммирование в цикле. Подсчитать сумму N членов ряда: 1/2+1/4+1/6+1/8+…
-
Подсчитать произведение N членов ряда: 2*4*6*8*10*… Распишем получение произведения данного ряда по шагам: F1=1*2 F2=F1*4 F3=F2*6 То есть, как рассматривалось выше, произведение ряда считается по формуле: F=F * .
-
Рассмотрим изменение множителей: 2, 4, 6, 8,…, представим как 2*1, 2*2 2*3, 2*4,…Следовательно, 1шаг F=F*(2*1) 2щагF=F*(2*2) 3шаг F=F*(2*3) Из примера видно, что один из множителей постоянный, а второй совпадает с номером шага. Следовательно, можно вывести формулу для расчета множителей ряда : (2*i). Подсчитать произведение N членов ряда: 2*4*6*8*10*…
-
В рассмотренном выше цикле на нахождение факториала можно заменить множительiв формуле F:=F*i; на (2*i) и использовать цикл для решения данной задачи, получаем формулу: F:=F* (2*i); Подобный подход можно использовать во всех, задачах на произведение. Подсчитать произведение N членов ряда: 2*4*6*8*10*…
-
Цикл с предусловием
Задания для самостоятельного выполнения Напишите программу вычисления суммы N слагаемых ряда: 1+1/2+1/3+1/4+1/5+… Напишите программу вычисления произведения N чисел ряда: 1*1/2*1/3*1/4*1/5*… Учитывайте: 1=1/1
-
Цикл с постусловием
-
Repeat Until ; Операторы, составляющие тело цикла, выполняются, до тех пор, пока логическое условиене станет истинно. Цикл выполняется один раз обязательно Необходимые условия: В цикле обязательно должна использоваться переменная, позволяющая циклу завершить работу. До входа в цикл все переменные, используемые в теле цикла, должны иметь численное значение. Логическое условие Тело цикла да нет
-
Используется, если число повторений заранее неизвестно, а определяется по ходу реализации циклического процесса.
-
Рассмотрим применение цикла к задачам: Найти сумму чисел до заданного N. Найти N! Найти XN
-
Цикл с постусловием на языке Паскаль для трех рассмотренных задач
-
Пример программы и вид окна пользователя
-
Примеры программ
Примеры программ
-
Примеры программ
Паскаль-рулетка Предлагается угадать целое число от 1 до 10 Пусть программа «загадает» число, а пользователь введет предполагаемое значение. Если число угадано, программа поздравит победителя, а если нет — попросит его повторить попытку еще раз. Вначале игроку назначается 10 призовых баллов. Каждая безуспешная попытка снижает призовые баллы.
-
Паскаль-рулетка. В этом примере число повторений цикла заранее неизвестно, поэтому лучше использовать одну из разновидностей цикла с проверкой условия.
-
Описание алгоритма: выбрать случайное целое число от 1 до 10; вывести приглашение на ввод целого значения; если введенное число меньше задуманного, сообщить об этом игроку, иначе сообщить ему о том, что введенное число больше задуманного; повторять ввод целого значения до тех пор, пока число не будет угадано; вывести поздравление победителю и сообщить ему о набранном числе баллов; завершить работу.
-
Не исключена возможность того, что число будет угадано сразу. В этом случае уже не надо выводить подсказку игроку, поэтому следует использовать цикл с предусловием
-
Программа
-
Комментарий
В этой программе используются новые операторы : Randomize — начальная установка специальной процедуры — «генератора» случайных чисел Random(n) выдающей случайные целые числа от 0 до n - 1 Dec(bonus) — вызов процедуры, уменьшающей на единицу значение переменной bonus. Новый тип данных: Byte – целочисленный, диапазон 0…255, размер 1 байт.
-
Окно пользователя
-
-
Примеры программ
Пробуем разбогатеть Предлагается открыть счет в банке. Банк ежегодно начисляет определенный процент от вклада – учетную ставку процента. Будем считать, что учетная ставка процента не зависит от времени и величины вклада. Программа расчитывает величину вклада и выводит эту величину для каждого года до тех пор, пока величина вклада не удвоится.
-
Описание алгоритма: ввести первоначальную величину вклада, учетную ставку процента и год помещения денег в банк; рассчитать новую величину вклада; вывести год и величину вклада в данном году; повторять шаги 2 и 3 до тех пор, пока величина вклада не удвоится; завершить работу.
-
Деньги в банке должны находится хотя бы один год, чтобы на них были начислены проценты. В этом случае цикл должен быть выполнен по крайней мере один раз, поэтому следует использовать цикл с постусловием
-
Программа
-
Комментарий
В этой программе используются новые операторы : Inc(year)- вызов процедуры, увеличивающей на единицу значение переменной year. Новый тип данных: Word – целочисленный, диапазон 0…65535, размер 2 байта.
-
Окно пользователя
-
Циклы с предусловием и постусловием
Какую разновидность цикла лучше выбрать в каждом конкретном случае? Используйте цикл repeat, если необходимо, чтобы тело цикла выполнялось по крайней мере один раз. Используйте цикл while, если хотите, чтобы проверка была произведена прежде, чем будет выполняться тело цикла.
-
Цикл с параметром
Цикл с параметром имеет два варианта записи: Шаг +1 For i:=n to k do оператор; i – параметр цикла (счетчик), n – начальное значение параметра, k – конечное значение параметра Переменная iувеличивается на единицу от начального значения n до конечного значения k при каждом новом значении iисполняется оператор внутри цикла.
-
Для правильного выполнения этого вида цикла должно выполняться условие n k, то цикл не выполняется ни разу. Если n = k, то цикл выполняется один раз
-
Цикл с параметром
Шаг – 1 For i:=n downto k do оператор; i – параметр цикла (счетчик), n – начальное значение параметра, k – конечное значение параметра Переменная iуменьшается на единицу от начального значения n до конечного значения k при каждом новом значении iисполняется оператор внутри цикла.
-
Для правильного выполнения этого вида цикла должно выполняться условие n > k Если n
-
Еслитело цикла состоит из нескольких операторов, то они заключаются в операторные скобки begin … end; For i:=n to k do begin оператор 1; оператор 2; … оператор N; end;
-
Цикл с предусловием
Рассмотрим три задачи: Найти сумму чисел до заданного N. Найти N! Найти XN
-
Цикл с параметром
-
-
-
Задача 212° по Фаренгейту У писателя-фантаста РэяБредбери есть роман «451° по Фаренгейту». В подзаголовке к роману сказано, что «451° по Фаренгейту — температура, при которой горит бумага».
-
Справка
Температурная шкала Фаренгейта была предложена немецким физиком Габриэлем Фаренгейтом и используется в настоящее время в ряде англоязычных стран. В этой шкале температура замерзания воды при стандартном атмосферном давлении равна 32 °F, а температура кипения составляет 212 °F. В более привычной для нас шкале Цельсия аналогичными «опорными» точками являются соответственно 0 °С и 100 °С.
-
Цикл с параметром
Формула для пересчета температуры имеет вид: tf = 9 / 5 * tc + 32, где tf — температура по Фаренгейту, tc — температура по Цельсию.
-
Следующая программа предназначена для вывода таблицы соответствия между температурными шкалами Цельсия и Фаренгейта в интервале температур от точки замерзания воды до точки ее кипения.
-
Программа
-
Окно пользователя
-
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.