Рекомендации по выбору цикла




Операторы цикла: цикл с предусловием, с постусловием, с параметром.

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


Каждый цикл состоит из

· блока проверки условия повторения цикла

· тела цикла


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


В языке Си следующие виды циклов:

· while — цикл с предусловием;

· do…while — цикл с постусловием;

· for — параметрический цикл (цикл с заданным числом повторений).


Цикл с предусловием while

Синтаксис цикла с предусловием while:

while (Условие)
{
БлокОпераций;
}

Если Условие выполняется (выражение, проверяющее Условие, не равно нулю), то выполняется БлокОпераций, заключенный в фигурные скобки, затем Условие проверяется снова.

Последовательность действий, состоящая из проверки Условия и выполнения БлокаОпераций, повторяется до тех пор, пока выражение, проверяющее Условие, не станет ложным (равным нулю). При этом происходит выход из цикла, и производится выполнение операции, стоящей после оператора цикла.

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

while — цикл с предусловием, поэтому вполне возможно, что тело цикла не будет выполнено ни разу если в момент первой проверки проверяемое условие окажется ложным.

Например, если в приведенном выше коде программы ввести k=-1, то получим результат

Пример 1. Использование оператора цикла с предусловием while.

 

 

Цикл с постусловием do…while

Синтаксис цикла с предусловием do…while

do {
БлокОпераций;
} while (Условие);

Цикл do...while — это цикл с постусловием, где истинность выражения, проверяющего Условие проверяется после выполнения Блока Операций, заключенного в фигурные скобки. Тело цикла выполняется до тех пор, пока выражение, проверяющее Условие, не станет ложным, то есть тело цикла с постусловием выполнится хотя бы один раз.

Использовать цикл do...while лучше в тех случаях, когда должна быть выполнена хотя бы одна итерация, либо когда инициализация объектов, участвующих в проверке условия, происходит внутри тела цикла.

Пример 2. Использование полного условного оператора для определения положительного числа.

 

Цикл с параметром for

Синтаксис цикла с предусловием for

for (Инициализация; Условие; Модификация)
{
БлокОпераций;
}

for — параметрический цикл (цикл с фиксированным числом повторений). Для организации такого цикла необходимо осуществить три операции:

· Инициализация - присваивание параметру цикла начального значения;

· Условие - проверка условия повторения цикла, чаще всего - сравнение величины параметра с некоторым граничным значением;

· Модификация - изменение значения параметра для следующего прохождения тела цикла.


Эти три операции записываются в скобках и разделяются точкой с запятой;;. Как правило, параметром цикла является целочисленная переменная.
Инициализация параметра осуществляется только один раз — когда цикл for начинает выполняться.
Проверка Условия повторения цикла осуществляется перед каждым возможным выполнением тела цикла. Когда выражение, проверяющее Условие становится ложным (равным нулю), цикл завершается. Модификация параметра осуществляется в конце каждого выполнения тела цикла. Параметр может как увеличиваться, так и уменьшаться

 

Пример 3. Использование полного условного оператора для решения задачи: дано действительное число x. Составить программу, которая находит значение функции.

 

 

В Си допускаются вложенные циклы, то есть когда один цикл находится внутри другого:

for (i = 0; i<n; i++) // внешний цикл - Цикл1
{
for (j = 0; j<n; j++) // вложенный цикл - Цикл2
{
; // блок операций Цикла2
}
// блок операций Цикла1;
}

 

 

Рекомендации по выбору цикла

При выборе цикла необходимо оценить необходимость проверки условия при входе в цикл или по завершении прохождения цикла.
Цикл с постусловием удобно применять в случаях, когда для проверки условия требуется вычислить значение выражения, которое затем будет размещено в теле цикла (см. выше пример ввода числа от 0 до 10).
Цикл c предусловием используется в случае если все переменные, участвующие в выражении, проверяющем условие, проинициализированы заранее, но точное число повторений цикла неизвестно или предполагается сложная модификация переменных, участвующих в формировании условия повторения цикла.
Если цикл ориентирован на работу с параметром, для которого заранее известно число повторений и шаг изменения, то более предпочтительным является параметрический цикл. Очень удобно использовать параметрический цикл при работе с массивами для перебора элементов.


Задания для выполнения

1. Реализуйте представленные в лабораторной работе примеры.

2. Напишите программу печати таблицы перевода расстояний из дюймов в сантиметры для значений длин от 1 до 20 дюймов. 1 дюйм = 2,54 см.

3. Составьте программу, вычисляющую сумму квадратов всех чисел от 1 до N.

4. Напишите программу, определяющую сумму всех нечетных чисел от 1 до 99

5. Составьте программу, подсчитывающую количество цифр вводимого вами целого неотрицательного числа.

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

7. Найти наибольшее и наименьшее значение функции y=3x2+x-4, если на заданном интервале [a,b] Х изменяется с шагом 0,1.

8. Вычислить: 1+2+4+8+…+210

9. В бригаде, работающей на уборке сена, имеется N косилок. Первая из них работала M часов, а каждая следующая на 10 минут больше, чем предыдущая. Сколько часов проработала вся бригада?

10. Билет называют «счастливым», если в его номере сумма первых трех цифр равна сумме последних трех. Подсчитать число тех «счастливых» билетов, у которых сумма трех цифр равна 13 Номер билета может быть от 000000 до 999999

11. Индивидуальное задание. Вычислите выражение с условием выполнения области определения функции.

 

Задание
1. Ввести с клавиатуры 10 пар чисел. сравнить числа в каждой паре и напечатать большие из них.
2. Даны натуральные числа от 10 до 150. Напечатать те из них, которые делятся на 3, но не делятся на 5.
3. Даны натуральные числа от 35 до 87. Найти и напечатать те из них, которые при делении на 7 дают остаток 1, 2 или 5.
4. Даны натуральные числа от 1 до 150. Найти сумму тех из них, которые делятся на 5 или на 7.
5. Напечатать те из двузначных чисел которые делятся на 4, но не делятся на 6.
6. Найти произведение двузначных нечетных чисел кратных 13.
7. Найти сумму чисел от 100 до 200 кратных 17.
8. Составьте программу, которая вычисляет сумму квадратов чисел от 1 до введенного вами целого числа N.
9. В бригаде, работающей на уборке сена, имеется N сенокосилок. Первая сенокосилка работала m часов, а каждая следующая на 10 минут больше, чем предыдущая. Сколько часов проработала вся бригада?
10. В 1202г. Итальянский математик Леонард Пизанский (Фибоначчи) предложил такую задачу: пара кроликов каждый месяц дает приплод – двух кроликов (самца и самку), от которых через два месяца уже получается новый приплод, Сколько кроликов будет через год, если в начале года имелась одна пара? Согласно условию задачи числа, соответствующие количеству кроликов, которые появляются через каждый месяц, составляют последовательность 1, 1, 2, 3, 5, 8, 13, 21, 37, … Составьте программу, позволяющую найти все числа Фибоначчи, меньшие заданного числа N.
11. В ЭВМ вводятся по очереди данные о росте N учащихся класса. Определить средний рост учащихся класса.
12. Даны два двузначных числа А и В. Из этих чисел составили 2 четырехзначных числа: первое число получили путем написания сначала числа А, затем В. Для получения второго числа сначала записали число В, затем А. Найти числа А и В если известно, что первое четырехзначное число нацело делится на 99, а второе на 49.
13. Два двузначных числа, записанных одно за другим, образуют четырёхзначное число, которое делится на их произведение. Найти эти числа.
14. Задано натуральное число N. Найти количество натуральных чисел, не превосходящих N и не делящихся ни на одно из чисел 2,3,5.
15. Дано натуральное n. вычислить: 1 + 1/2 + 1/3 + 1/4 +... + 1/n.
16. У первоклассника Пети m рублей. Мороженое стоит k рублей. Петя решил наесться досыта мороженого, для этого он покупал по одному мороженому и съедал его до тех пор, пока ему хватало денег. Как Пете узнать, сколько денег останется у него в конце концов? учтите, что Петя делить еще не умеет, а умеет только вычитать и складывать. сколько мороженых он может съесть?
17. Имеется кусок ткани длинной M метров. От него последовательно отрезаются куски равной длины. Все данные по использованию ткани заносятся в компьютер. Компьютер должен выдать сообщение о том, что материала не хватает, если будет затребован кусок ткани больше длины, чем имеется.
18. Даны действительное (а) и натуральное (n). вычислить: a(a+1)...(a+n-1)
19. Написать программу, которая по заданным значениям чисел a и b находит a в степени b. В запросе укажите допустимые значения этих переменных (Например если а - дробное, то b не может быть отрицательным).
20. Составьте программу, вычисляющую A*B, не пользуясь операцией умножения. А и B любое натуральное число.
21. Найти двузначное число, равное утроенному произведению его цифр.
22. Вычислить: 1+2+4+8+...+ 2 в 10 степени.
23. Бизнесмен взял ссуду m тысяч рублей в банке под 20% годовых. через сколько лет его долг превысит s тысяч рублей, если за это время он не будет отдавать долг.
24. Вычислить: (1+2)*(1+2+3)*...*(1+2+...+10).
25. В сберкассу на трёхпроцентный вклад положили S рублей. Какой станет сумма вклада через N лет.
26. Дано натуральное число. Определить, сколько раз в нем встречается максимальная цифра (например, для числа 132 233 ответ равен 3, для числа 46 336 — 2, для числа 12 345 — 1).
27. Найти 20 первых натуральных чисел, делящихся нацело на 13 или на 17 и находящихся в интервале, левая граница которого равна 500.
28. Найти 15 первых натуральных чисел, делящихся нацело на 19 и находящихся в интервале, левая граница которого равна 100.
29. Найти 10 первых натуральных чисел, оканчивающихся на цифру 7, кратных числу 9 и находящихся в интервале, левая граница которого равна 100.
30. Дано натуральное число. Определить, сколько раз в нем встречается первая цифра.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-07-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: