- •Южно-Российский государственный технический университет (нпи)
- •Типы данных. Арифметические и логические операции в языке Си. Разветвляющиеся программы
- •Методические указаниия
- •Варианты заданий к практической работе №2
- •Операторы циклов. Массивы
- •Методические указаниия
- •К п.1. Операторы цикла.
- •К п.3.М ассивы.
- •Int a[5][6]; // Объявляем матрицу из 5 строк и 6 столбцов
- •Задание к лабораторной работе №3
- •Оператор множественного выбора switch.
- •Методические указаниия
- •К п.1. Оператор ( функция ) выбора switch — case — default.
- •Символьные строки.
- •Методические указания
- •К п.1. Символы.
- •К.П.2. Задание к лабораторной работе №4
Операторы циклов. Массивы
Цель работы: Изучить особенности использования операторов цикла while, for и do-while, а также специальных операторов break и continue. Ознакомиться с понятием «массив», получить навыки ввода, вывода и обработки одномерных и двумерных массивов.
Программа работы:
Изучить операторы цикла while, for и do-while, получить навыки составления программ с использовани этих операторов (выполнить два задания из п.1. Методических указаний).
Изучить специальные операторы break и continue.
Ознакомиться с понятием «массив», получить навыки ввода, вывода и обработки одномерных и двумерных массивов. Выполнить индивидуальное задание, согласно выданному преподавателем варианту.
Методические указаниия
К п.1. Операторы цикла.
Циклы организуются, чтобы выполнить некоторый оператор или группу операторов определенное число раз. В языке Си три оператора цикла: for, while и do - while. Первый из них for формально записывается, в следующем виде:
for (выражение1; выражение2; выражение3) {тело_цикла}
Тело цикла составляет либо один оператор, либо несколько операторов, заключенных в фигурные скобки { ... }. В выражениях 1, 2, 3 фигурирует специальная переменная, называемая управляющей. По ее значению устанавливается необходимость повторения цикла или выхода из него.
Выражение1 присваивает начальное значение управляющей переменной, выражениеЗ изменяет его на каждом шаге, а выражение2 проверяет, не достигло ли оно граничного значения, устанавливающего необходимость выхода из цикла.
Например, простейший оператор цикла имеет вид:
for(i=0; i<10; i++)
printf("%d\n",i);
При выполнении этого оператора будут распечатаны в столбик цифры: от 0 до 9.
Задание:напишите программу на языке Си для вывода на экран цифр в обратном порядке (от 9 до 0).
Любое из трех выражений в цикле for может отсутствовать, однако точка с запятой должна оставаться. Таким образом, for ( ; ; ) {...} - это бесконечный цикл.
Оператор while формально записывается в таком виде:
while (выражение) тело_цикла
Выражение в скобках может принимать ненулевое (истинное) или нулевое (ложное) значение. Если оно истинно, то выполняется тело цикла и выражение вычисляется снова. Если выражение ложно, то цикл while заканчивается.
Пример программы с циклом while:
...
int n=0;
while(n!=20) // пока n не равно 20
{
printf(" %d \n", 2*n); //вывести произведение n*2
n++; // увеличить n на 1
}
...
Рисунок 6. Результаты выполнения программы с циклом while
На первом этапе задается n=0. Затем программа осуществляет сравнение числа n c числом 20. Т.к. выражение (n!=20) истинно (т.е. n≠20) – программа начинает выполнение тела цикла - вывод произведения n*2 (произведение=0) и увеличение значения n на единицу. Далее программа снова возвращается к проверке условия цикла, т.е. сравнивает уже новое (увеличенное на единицу) значение n с числом 20 и т.к. условие остается истинным (n≠20) - снова производит вывод произведения n*2 (теперь произведение=2) и увеличение числа n на единицу. Так будет продолжаться до тех пор, пока значение n не станет равным числу 20 – в этом случае программа осуществит выход из цикла.
Оператор do-while формально записывается следующим образом:
do {тело_цикла} while (выражение);
Основным отличием между циклами while и do - while является то, что тело в цикле do - while выполняется по крайней мере один раз. Тело цикла будет выполняться до тех пор, пока выражение в скобках не примет ложное значение. Если оно ложно при входе в цикл, то его тело выполняется ровно один раз.
Приведем пример программы с циклом do – while, результат выполнения которой аналогичен программе с циклом while (см. рисунок 6.)
...
int n=0;
do
{
printf(" %d \n", 2*n);
n++;
}
while(n!=20);
...
Допускается вложенность одних циклов в другие, т.е. в теле любого цикла могут появляться операторы for, while и do - while.
Задание:Используяоператор whileнапишите текст программы, которая предлагает пользователю ввести число от 0 до 10. Пока пользователь вводит числа меньше 10 предложение должно повторяться. Как только пользователь введет число больше 10 – программа должна завершить свое выполнение (примерный результат работы программы представлен на рисунке 7.).
Рисунок 7. Примерный результат работы программы с использованием цикла (задание)
К п.2. Операторы break и continue.
В теле цикла могут использоваться специальные операторы break и continue. Оператор break обеспечивает немедленный выход из цикла, оператор continue вызывает прекращение очередной и начало следующей итерации. Рассмотрим эти операторы на примере следующей программы:
Пример: нужно вводить числа с клавиатуры, если число больше нуля, то выводим на экран сообщение «number>0», если меньше, то - «number<0». Если, вдруг, оказывается, что мы ввели 0, то продолжаем дальше вводить значения. Условием выхода из цикла будет значение -100.
Решение:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int number;
for ( ; ; )
{
printf("Enter number \n");
scanf ("%d", &number);
if (number == -100)
{break;}
if (number == 0)
{continue;}
if ( number > 0 )
{printf ("number>0 \n");}
if (number < 0)
{printf ("number<0 \n");}
}
system("PAUSE");
return 0;
}
Результат работы данной программы необходимо представить в отчете.