- •2. Краткие теоретические сведения
- •2.1 Цикл с известным числом повторений – оператор цикла for
- •2.2 Цикл с предусловием – оператор цикла while
- •2.3 Цикл с постусловием – оператор цикла do-while
- •2.4 Организация вложенных циклов
- •3. Методические указания
- •3. Варианты заданий
- •3.1 Задания для общего выполнения
- •3.2. Индивидуальные задания
2.3 Цикл с постусловием – оператор цикла do-while
Если требуется выполнить тело цикла, хотя бы один раз до проверки условия выхода, используют оператор do-while:
do{
оператор;
}while(условие);
Цикл выполняется пока значение условия истинно. Например, считываем и выводим на экран число, пока не будет введено число большее или равное 100:
int i;
do{
scanf(“%d ”, &i);
printf(“%d”, i);
} while(i<100);
В этом случае появляется возможность просмотра значения переменной i сразу же после ее инициализации вне зависимости, как будет выполняться цикл.
2.4 Организация вложенных циклов
Очень часто в программе требуется организовать выполнение двух или более вложенных циклов. Главное правило, которое нужно помнить – не допускать повторяющихся названий переменных цикла. К примеру, имеем:
for(int i=0; i < 10; i++)
for(int j=0; j<10; j++){
printf(“%d”, j+i*10);
printf(”\n”);
}
Результатом выполнения этой программы будет матрица, заполненная элементами в порядке возрастания их значений.
3. Методические указания
Лабораторная работа включает три задания
При организации итерационных циклов необходимо учитывать следующее:
-
Переменная цикла должна быть инициализирована до начала цикла
-
Выражение условия цикла должно содержать переменную цикла
-
В теле цикла необходимо предусмотреть изменение переменной цикла
Рассмотрим примеры решения задачи
Пример 1
Словесная постановка задачи. Разработать программу нахождения наименьшего простого делителя натурального числа k, большего единицы.
Формальная постановка задачи.
Входные данные: k – натуральное число, k>1;
Выходные данные: i – наименьший простой делитель числа k, i1.
Метод решения: Известно, что простым называется число, не имеющее делителей, отличных от единицы и его самого, причем единица во множество простых чисел не входит. Наименьшее число, на которое данное число k делиться без остатка, можно найти, последовательно деля число k на число i, начиная с i=2. Если k делиться на число i без остатка, то число i – искомый простой наименьший делитель. Иначе проверяется, делиться ли число k на число i+1. Запишем рассуждения в виде последовательности команд.
Алгоритм решения задачи.
4. Листинг программы
#include <stdio.h>
#include <conio.h>
int main(){
printf(“введите натуральное число”);
readln(k);
i:=2;
while (k%i<>0){
i:=i+1;
}
writeln(‘наименьший простой делитель числа’, k, ‘равен’, i);
end.
Пример 2.
Вычислить и вывести значение функции, заданной с помощью ряда Тейлора, в точке x с точностью : .
Формальная постановка задачи.
Входные данные: x – действительное число число, k>1;
Выходные данные: i – наименьший простой делитель числа k, i1.
3. Варианты заданий
3.1 Задания для общего выполнения
-
Написать программу нахождения наибольшего общего делителя двух натуральных чисел методом Евклида.
-
Написать программу, подсчитывающую количество вхождений отрезка заданной длины в указанный интервал.
-
«Угадай число». Пользователю предлагается отгадать число за 10 попыток. Программа дает подсказки вида больше, меньше.
-
Составьте программу, выводящую на экран квадраты чисел от 10 до 20.
-
Составьте программу, которая вычисляет сумму чисел от 1 до 100.
-
Составьте программу, которая вычисляет сумму чисел от 1 до N. Значение N вводится с клавиатуры.
-
Составьте программу, которая вычисляет произведение чисел от 1 до N. Значение N вводится с клавиатуры.
-
С клавиатуры вводятся N чисел. Составьте программу, которая определяет количество отрицательных, количество положительных и количество нулей среди введенных чисел. Значение N вводится с клавиатуры.
-
Составьте программу, которая печатает таблицу перевода расстояний из дюймов в сантиметры (1 дюйм = 2,5 см) для значений длин от 1 до 20 дюймов.
-
В сберкассу на трехпроцентный вклад положили S рублей. Какой станет сумма вклада через N лет?
-
Ввести с клавиатуры 10 пар чисел. Сравнить числа в каждой паре и напечатать большие из них.
-
Даны натуральные числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не делятся на 5.
-
Даны натуральные числа от 35 до 87. Найти и напечатать те из них, которые при делении на 7 дают остаток 1, 2 или 5.
-
Даны натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5 или на 7.
-
Ввести с клавиатуры 10 чисел. Если среди них есть числа, большие 15, заменить их на 15. Напечатать все полученные числа.
-
Ввести с клавиатуры 10 чисел – положительных и отрицательных. Заменить все отрицательные числа их модулями и напечатать все полученные 10 чисел.
-
Напечатать те из двузначных чисел, которые делятся на 4, но не делятся на 6.
-
Найти произведение двузначных нечетных чисел, кратных 13.
-
Найти сумму чисел от 100 до 200, кратных 17.
-
Ввести с клавиатуры 10 чисел. Если квадрат числа меньше 100, напечатать число и его квадрат.
-
Составьте программу, которая вычисляет сумму квадратов чисел от 1 до введенного вами целого числа n.
-
Написать программу, которая по заданным значениям чисел a и b находит ab. В запросе укажите допустимые значения этих переменных ( например, если a – дробное, то b не может быть отрицательным ).
-
В бригаде, работающей на уборке сена, имеется N сенокосилок. Первая сенокосилка работала m часов, а каждая следующая на 10 минут больше, чем предыдущая. Сколько часов проработала вся бригада?
-