Программы циклической структуры 1 ЦЕЛЬ РАБОТЫ: приобретение практических навыков в составлении алгоритмов и программ циклической структуры.
ОСНОВНЫЕ СВЕДЕНИЯ
Операторы циклов
В языке Си существует 3 вида циклов: 1) цикл с параметром или цикл типа for; 2) цикл с предусловием или цикл типа while, 3) цикл с постусловием или цикл типа do ... while. Во всех этих циклах условие продолжения цикла заключается в круглые скобки. В циклах типов for и while повторяющаяся часть состоит из одного оператора, если требуется выполнить в цикле несколько операторов, они заключаются в фигурные скобки, образуя составной оператор. В цикле с постусловием тело цикла помещается между словами do и while. В отличие от цикла с предусловием, цикл с постусловием выполнится хотя бы один раз. Все перечисленные циклы продолжаются, если условие продолжения истинно.
Цикл с параметром
Для цикла типа for заголовок состоит из трех разделов: инициализации (присваивания начальных значений), проверки условия повторения, модификации (изменения параметров). Разделителем между разделами заголовка служит запятая.
Пример вычисления суммы квадратов натурального ряда чисел от 1 до n.
S= = 12 + 2 2 + . . . + n 2.
// сумма квадратов натурального ряда
#include <stdio.h>
main()
{ int S,n,i;
printf(“Введите n ”);
scanf(“%d”,&n);
// В заголовке оператора цикла запятая может использоваться как разделитель
for (S=0, i=1; i<=n; i++)
S+=i*i; // соответствует S=S+i*i
printf (“n=%d S=%d ”,n,S);
}
В разделе инициализации присваиваются начальные значения переменным S и i. При i, не превышающем n, цикл повторяется, иначе выполняется выход из цикла. Оператор инкремента i++ (или декремента i--), эквивалентен i=i +1 (i=i-1). Для досрочного выхода из цикла и перехода на следующий оператор после цикла используется оператор break. Для пропуска всех операторов, оставшихся до конца тела цикла и перехода к следующему повторению цикла используется оператор continue.
Циклы с неизвестным количеством повторений
Изменим условие в предыдущем примере: Определить число n, при котором сумма чисел S предыдущего ряда не превысит величину K, введенную с клавиатуры. Такую программу можно реализовать с помощью циклов предусловия или постусловия следующим образом:
// циклы while и do…while
#include<stdio.h>
#include<conio.h>
main()
{int K,S, i;
clrscr(); // очистка экрана перед выводом
printf (“Введите К ”); scanf (“%d”, &K);
// цикл с предусловием //цикл с постусловием
S=0; S=0; i=0;
i= 0; do
while ( S<K) { i++ ; S+=i*i }; { i++; S+=i*i; }
while ( S<K) ;
printf (“n=%d S=%d\n”, i, S);
getch();
}
Отличие этих программ: если ввести К<1, то в программе с предусловием получим S=0, i=0 ; а в программе с постусловием S=1, i=1.
ВЫПОЛНЕНИЕ РАБОТЫ
Составить 3 варианта программ циклической структуры типа for и while, сравнить полученные результаты.
Варианты заданий
1. . 2. .
3. . 4. .
5. . 6. .
7. 8.
9. . 10. .
11. 12.
КОНТРОЛЬНЫЕ ВОПРОСЫ
4.1. Какой алгоритм является алгоритмом циклической структуры?
4.2. Типы циклов в языке Си.
4.3. Какой цикл выполнится хотя бы один раз? А какой - ни разу?
Лабораторная работа №4
Обработка статических массивов
1 ЦЕЛЬ РАБОТЫ:приобретение практических навыков в составлении программ с массивами.
ОСНОВНЫЕ СВЕДЕНИЯ
Массивы - структурированный тип данных с элементами одного типа, имеющий одно имя и определенное количество элементов. Количество элементов определяет размер массива. Порядковый номер элемента массива называется его индексом. Число индексов называется размерностью массива, например, массив с двумя индексами называется двумерным массивом. Строка символов является массивом символов, вектор – массив чисел, матрица – массив векторов. Обработка массивов выполняется следующим образом: описание, ввод или инициализация элементов массива, преобразование и вывод.
При описании массивов после имени в квадратных скобках указывается число его элементов (если массив сразу инициализируется, число элементов можно не указывать). В языке Си индекс элемента массива начинается с нуля, поэтому индекс последнего элемента массива на 1 меньше числа элементов в данном массиве.
|