![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Моделирование цикла for с помощью цикла whileСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
for x:=x1 to x2 do эквивалентно x:=x1; Моделирование цикла repeat с помощью цикла while repeat эквивалентно S; Зацикливание repeat или while True do Примеры использования циклов Пример 1. Сумма n чисел. s:=0; Пример 2. Произведение n чисел. p:=1; Пример 3. n!!=n*(n-2)*(n-4)*...*2 (или 1) p:=1; Пример 4. Сколько нечетных среди 10 введенных. c:=0; Пример 5. Защита от неверного ввода. repeat Пример 6. Табулирование функции f(x) на отрезке [a,b] в точках, разбивающих [a,b] на N частей. assert(N>0); Пример 7. Вывод 10 первых степеней двойки. x:=10; Пример 8. Вывод всех двузначных чисел, кратных 5. x:=1; Пример 9. Вывести n первых чисел Фибоначчи. Числа Фибоначчи определяются следующим образом: a:=1; Пример 10. Найти сумму цифр целого положительного числа. read(m); Пример 11. Найти НОД (А,В), где А,В - целые положительные. Алгоритм Евклида: НОД (А,В) = НОД (В, А mod B); НОД (А,0)=А read(A,B); Замечание. Доказательство того, что цикл завершится: С уменьшается на каждом шаге, оставаясь >=0. Пример 12. Найти max из N введенных чисел. Алгоритм 1. max:= первое введенное read(x); Алгоритм 2. max:= самое маленькое число (-MaxInt или -MaxDouble) for i:=1 to N do Пример 13. Разложение числа на простые множители. Алгоритм на псевдокоде цикл Алгоритм на Паскале read(x); Пример 14. Даны a0,..., an, x Вычислить значение многочлена f(x)=a0xn+a1xn-1+...+an в точке x. Схема Горнера: f(x)=(...((a0x+a1)x+a2)x+a3...)x+an read(x); n+1 операций "+" и n+1 операций "* " Примеры на суммирование рядов Если xi = f(xi-1), то x:=x0; Пример 15. Вычислить сумму
x:=1; Если существует предел суммы Пример 16. Знакопеременный ряд z:=1; Пример 17. Вычислить сумму xi=xi-1*y*(i-1)/i - неэффективно. Лучше pi=yi, pi=pi-1*y Код программы. for i:=0 to n do Пример 18. Метод половинного деления Задача. Дана непрерывная на [a,b] функция f(x),имеющая на [a,b] ровно один корень (т.е. f(a)*f(b)<=0). Найти его с точностью eps. Алгоритм. fa:=f(a); Процедуры break и continue Задача. Есть ли среди введенных 10 чисел число К? Решение. Способ 1. flag:=false; Недостаток: после того как flag получит значение True, он уже не поменяется, поэтому дальнейшее выполнение цикла бесполезно. Для решения подобных проблем используются специальные процедуры, меняющие порядок выполнения операторов: break и continue. Вызов процедуры break завершает цикл досрочно. Вызов процедуры continue досрочно завершает текущую итерацию цикла. Процедуры break и continue могут вызываться только в цикле. Мнение автора. Позволю себе заметить, что решение назвать break и continue процедурами мне не нравится. В C, Java это - операторы, как и goto. И правильно: обычная процедура не может менять порядок выполнения операторов: это удел синтаксических конструкций (операторов). Решение. Способ 2. flag:=false; Приведем другие примеры использования процедур break и continue. Пример 1. Является ли число N простым? IsSimple:=True; Пример 2. Вводятся ненулевые числа, конец ввода - 0. Найти сумму и произведение положительных. S:=0; Всегда можно обойтись без break или continue, введя дополнительные логические переменные. while B do Так выглядит программа без break: B1:=false; Вложенные циклы Цикл, вызываемый в другом цикле, называется вложенным. Задача. Вывести таблицу значений Аk, где А=2..10. Метод окаймления "Заморозим" А и составим алгоритм при фиксированном А.
for A:=2 to 10 do Разморозим А и окаймим данный участок цикла по А от 2 до 10. Задача. Вывести все простые числа от 100 до 999.
|
||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 560; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.218.124 (0.009 с.) |