Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Алгоритмизация и ОП / 3_Программирование циклических алгоритмовt

.doc
Скачиваний:
25
Добавлен:
09.02.2016
Размер:
136.7 Кб
Скачать

2.3 Лабораторная работа №3 Программирование циклических алгоритмов

Цель работы: научиться разрабатывать блок-схемы и составлять программы. реализующих циклические алгоритмы, изучить циклические операторы for, while, do – while.

Общие сведения

Алгоритм называется циклическим, если он содержит многократное выполнение одних и тех же операторов при различных значениях промежуточных данных. Число повторений этих операторов может быть задано в явной (цикл с известным заранее числом повторений) или неявной (цикл с неизвестным заранее числом повторений) форме.

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

Циклом называется последовательность действий, выполняемых многократно, каждый раз при новых значениях параметров.

Циклы бывают:

  1. c предусловием;

  2. c постусловием;

  3. с параметрами.

Операторы циклов в языке С

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

while(условие) {

//операторы тела цикла

}

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

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

do {

// операторы тела цикла

}while(условие);

Здесь тоже можно не писать операторные скобки,  если в цикле один оператор. Сначала выполняются операторы тела цикла,  потом проверяется логическое условие, и если оно ложно, то операторы цикла будут выполняться повторно, а если истинно, то будут выполняться операторы после цикла.

Оператор цикла с параметром:

for(начало цикла; условие конца цикла; изменение шага цикла)

{

//операторы тела цикла

}

Циклы с параметром работают следующим образом: пока управляющая переменная (счетчик цикла - j) меньше(больше) какого-то значения n, то выполняются операторы цикла, при этом с каждым витком цикла управляющая переменная меняет свое значение на какое-то определенное число, называемое шагом цикла.

Вложенные циклы

Цикл, как и все обычные операторы, может быть внутри другого цикла, и в этом случае пока не выполнятся внутренние (вложенные) операторы, внешние выполняться не будут.

Операторы управления циклом

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

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

Пример

Задание: Составить программу вычисляющую:

На рисунке 2.3.1 приведена блок-схема решения задания

Рисунок 2.3.1 -Блок-схема решения задания

Переводим блок-схему на язык С.

Текст программы может иметь следующий вид:

#include <stdio.h>

#include <math.h>

int main()

{int n, x, f, i;

float S;

printf ("\n Введите значение n\n n=");

scanf ("%d", &n);

printf ("\n Введите значение x\n x=");

scanf ("%d", &x);

S=0;

f=1;

for (i=1; i<=n; i++)

{f=f*i;

S=S+(cos(i*x)/f);}

printf ("\n Сумма S=%f", S);

getch();

return 0;

}

Результат выполнения программы:

Введите значение n

n=4

Введите значение x

x=1

Сумма S=0.139995

Варианты задания А

Составить блок-схему и программу вычисления суммы

1. 11.

2. 12.

3. 13.

4. 14.

5. 15.

6. 16.

7. 17.

8. 18.

9. 19..

10. 20.

Задание Б

Составить программу решения задачи. Все значения для вычисления ввести с клавиатуры.

Варианты задания Б

1. Сколько можно купить быков, коров, телят, платя за быка 10 рублей, за корову 5 рублей, а за теленка 0,5 рублей, если на 100 рублей надо купить 100 голов скота. [Ответ: коров-9, бык-1,телят-90]

2. В компьютер вводятся по очереди координаты N точек. Определить, сколько из них попадет в круг радиусом R с центром в точке (а,в).

3. У гусей и кроликов вместе 24 лапы. Сколько может быть кроликов и гусей (указать все сочетания)

4. В компьютер вводятся по очереди данные о росте N учащихся группы. Определить средний рост учащихся группы

5. Одноклеточная амеба каждые три часа делится на 2 клетки. Определить, сколько амеб будет через 3,6,9,12,…,24 часа. [Ответ: 256]

6. Составьте программу вычисления степени числа А с натуральным показателем N . (Записать варианты программы с 3 видами циклов: for, while, do…while)

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

8. С помощью оператора WHILE написать программу, которая ищет произведение 10 произвольно введенных чисел и выводит его на печать.

9. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней?

10. С помощью оператора WHILE напишите программу вывода всех четных чисел в диапазоне от 22 до 100 включительно.

11. Составить программу для вычисления значений функции F(x) на отрезке [a,b] с шагом h. Результат представить в виде таблицы, первый столбец которой- значения аргумента, второй- соотв. значение функции. F(x)=cosx+ctgx

12. С помощью оператора WHILE напишите программу, вычисляющую сумму квадратов чисел от 1 до введенного вами целого числа.

13. Напишите программу определения суммы всех нечетных чисел, кратных 3 в диапазоне от 1 до 99 включительно.

14. Составить программу поиска четырехзначных чисел, которые при делении на 133 дают в остатке 125, а при делении на 134 дают в остатке 111.

15. С помощью оператора цикла с постусловием напишите программу-фильтр, которая вводит любые символы, но комментирует только буквы русского алфавита. Завершение работы - по нажатию буквы ‘Я’.

16. Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9.

17. Найти все трехзначные числа, сумма цифр которых равна данному целому числу.

18. Найти все трехзначные числа, средняя цифра которых равна сумме первой и второй цифр.

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

20. Найти все двузначные числа, сумма квадратов цифр которых делится на 17.

Контрольные вопросы

  1. Как записывается и как работает оператор FOR?

  2. Для организации каких циклов применим оператор FOR?

  3. В чем отличие оператора WHILE от оператора DO WHILE?

  4. Как программируются циклические алгоритмы с явно заданным числом повторений цикла?

  5. Как программируются циклические алгоритмы с заранее неизвестным числом повторений цикла?

  6. Напишите оператор цикла, который не выполняется ни разу.

  7. В каких случаях используются операторные скобки?

  8. Как работают операторы управления циклом?

25