- •Содержание
- •Введение
- •1. Теоретические сведения
- •1.1. Общие сведения
- •1.2. Основные понятия языка
- •1.3. Типы данных
- •1.4. Переменные и константы
- •1.5. Ввод и вывод информации
- •1.5.1. Форматированный ввод данных
- •1.5.2. Форматированный вывод данных
- •1.6. Операции и операторы
- •1.6.1. Операции языка Си
- •1.6.2. Операторы
- •1.6.2.1. Оператор присваивания
- •1.6.2.2. Условные операторы. Оператор безусловного перехода
- •1.6.2.3. Операторы цикла
- •2. Лабораторные работы
- •2.1. Лабораторная работа 1. Линейный вычислительный процесс
- •2.2. Лабораторная работа 2. Разветвляющийся вычислительный процесс
- •2.3. Лабораторная работа 3. Оператор переключатель switch
- •2.4. Лабораторная работа 4. Циклический вычислительный процесс
- •2.5. Лабораторная работа 5. Массивы
- •2.6. Лабораторная работа 6. Матрицы
- •2.7. Лабораторная работа 7. Подпрограммы
- •Заключение
- •Библиографический список
1.6.2.3. Операторы цикла
В языке Си и Си++ три оператора цикла: for, while и do - while. Первый из них имеет вид:
for (<выражение_1>; <выражение_2>; <выражение_3>) <тело_цикла>;
Тело цикла составляет либо один оператор, либо несколько операторов, заключенных в фигурные скобки { ... }, т.е. если в цикле выполняется несколько операторов, то применяется составной оператор. В выражениях 1, 2, 3 фигурирует специальная переменная, называемая управляющей. По ее значению устанавливается необходимость повторения цикла или выхода из него.
Выражение_1 присваивает начальное значение управляющей переменной, выражение_3 изменяет его на каждом шаге, а выражение_2 проверяет, не достигло ли оно граничного значения, устанавливающего необходимость выхода из цикла.
Примеры:
for (i = 1; i < 10; i++)
{ ...
}
for (сh = 'a'; ch != 'p';) scanf ("%c", &ch);
/* Цикл будет выполняться до тех пор, пока с клавиатуры не будет введен символ 'p' */
Любое из трех выражений в цикле for может отсутствовать, однако точка с запятой должна оставаться. Таким образом, for ( ; ; ) {...} – это бесконечный цикл, из которого можно выйти лишь другими способами.
Операция запятая находит широкое применение для построения выражений цикла for и позволяет параллельно изменять значения нескольких управляющих переменных.
Оператор while (с предусловием) имеет вид:
while (<выражение>) <тело_цикла>;
Выражение в скобках может принимать ненулевое (истинное) или нулевое (ложное) значение. Если оно истинно, то выполняется тело цикла и выражение вычисляется снова. Если выражение ложно, то цикл while заканчивается.
Оператор do-while (с постусловием) имеет вид:
do {<тело_цикла>} while (<выражение>);
Основным отличием между циклами while и do - while является то, что тело в цикле do - while выполняется по крайней мере один раз. Тело цикла будет выполняться до тех пор, пока выражение в скобках не примет ложное значение. Если оно ложно при входе в цикл, то его тело выполняется ровно один раз.
Допускается вложенность одних циклов в другие, т.е. в теле любого цикла могут появляться операторы for, while и do - while.
В теле цикла могут использоваться операторы break и continue. Оператор break обеспечивает немедленный выход из цикла, оператор continue вызывает прекращение очередной и начало следующей итерации.
1.7. Среда Visual C++ 2008 Express
Общий вид окна Visual C++ 2008 показан на рис. 1.
Рис. 1. Вид главного окна после загрузки Visual C++ 2008
Среда Visual C++ 2008 Express, как и среда Borland Builder 6 имеет как консольный режим работы, так и режим Windows Forms (рис. 2).
Рис. 2. Окно создания проекта
Операторы ввода и вывода в режиме работы Windows Forms имеют иной вид, чем в консольном режиме.
Пример оператора ввода простой переменной:
x=Convert::ToInt(textBox1->Text);
Здесь Convert::ToInt перевод строковой переменной в число целого типа.
Пример одного из операторов ввода массива:
int b[7]={5,2,3,7,0,1,8};
Пример оператора ввода массива с помощью генератора случайных чисел:
Random^ rand=gcnew Random;
for (i=0; i<n; i++)
a[i]=rand->Next(-10,10);
Пример оператора ввода матрицы с помощью генератора случайных чисел:
Random^ rand=gcnew Random;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
a[i][j]=rand->Next(-50,50)-25.8;
Примеры операторов вывода простой переменной:
textBox1->Text= Convert::ToString(y);
richTextBox1->Text="Ответ R="+Convert::ToString(R);
Здесь Convert::ToString перевод числовой переменной в строку.
Пример оператора вывода массива:
for (i=0; i<n; i++)
richTextBox1->Text+=" "+ Convert::ToString a[i];
Пример оператора вывода матрицы в общепринятом виде:
for (i=0; i<n; i++)
{for (j=0; j<m; j++)
richTextBox1->Text+=" "+ Convert::ToString(a[i][j]);
richTextBox1->Text+=Environment::NewLine;} // перевод строки
Пример оператора вывода матрицы в общепринятом виде с использованием другого способа перевода числа в строку a[i][j].ToString():
for (i=0; i<n; i++)
{for (j=0; j<m; j++)
richTextBox1->Text+=" "+a[i][j].ToString();
richTextBox1->Text+=Environment::NewLine;} // перевод строки
На рис. 3 показано окно Visual C++ 2008 c созданной формой «Лабораторная работа» для ввода и вывода информации. Справа раскрыто окно свойств компонент.
На рис. 4 показана панель инструментов со стандартными компонентами.
Рис. 3. Окно Visual C++ 2008 c созданной формой для ввода и вывода информации
Рис. 4. Панель инструментов со стандартными компонентами
