Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Дисциплины:
2017-06-19 | 358 |
5.00
из
|
Заказать работу |
|
|
При использовании вложенных конструкций действует правило: конструктор else всегда соответствует ближайшему слева конструктору if, не имеющему части else.
Пример 3.2:
if (x >1)
if (y= =2)
z =5;
else
z = 6;
Здесь часть else относится ко второму оператору if.
Пример3.3: Программа функции sqn(x). Она вычисляет знак введенного числа х, т.е. sgn(x) принимает значение 1, если х > 0, значение -1, если x < 0, и значение 0, если х=0.
#include <stdio.h>
main()
{
int sqn;
float x;
printf (“Введите число”);
scanf (“% f “, &x);
if (x>0)
{ sqn =1; printf (“число %f положительное sqn = %d \n “,x, sqn);}
if (x= =0)
{ sqn=0; printf (“число %f равно нулю sqn= %d \n”, x, sqn);}
if (x<0) { sqn = -1; printf (“число %f отрицательное sqn= %d \n”, x, sqn);}
}
Здесь мы не использовали оператор else.
Часто встречается необходимость использовать конструкцию if – else – if:
if (условие) оператор;
else if(условие) оператор;
else if((условие)оператор;
…..
else оператор;
В этой форме условия проверяются сверху вниз. Как только какое-либо из условий принимает значение “истинно”, выполнится оператор, следующий за этим условием., а вся остальная конструкция будет проигнорирована.
Запишем фрагмент программы примера 3.3 с использованием оператора else.
………………..
if (x>0) { sqn = 1; printf (“число %f положительное \n”, x); }
else if (x<0)
{ sqn= -1; printf (“число %f отрицательное \n”, x); }
else { sqn =0; printf (“число %f равно нулю \n”, x); }
Операторы организации цикла
Если в программе имеет место периодическое повторение некоторой последовательности действий, то говорят о наличии цикла.
Циклические вычисления в языке Си реализуются операторами for..., while..., do... while.... Операторы цикла for – со счетчиком, while- с предусловием; do...while- с постусловием.
Оператор for имеет следующую конструкцию:
for (выражение_1; выражение_2; выражение_3)
|
оператор;
где: выражение_1 устанавливает начальное значение параметра цикла;
выражение_2 определяет условие продолжения цикла;
выражение_3 задает правило модификации параметра цикла.
Каждое из этих трех выражений может быть групповым или может отсутствовать, в том числе и одновременно, но разделители ‘;’ обязательно должны быть. Если отсутствует выражение_2, то оно считается истинным по умолчанию.
Конструкциии бесконечных циклов:
for (;;;) printf(“ Бесконечный цикл\ n”);
for (i =1; 1; i++) printf(“ Бесконечный цикл\ n”);
for (i =10; i >6; i++) printf(“ Бесконечный цикл\ n”);
Тем не мене для таких циклов также может быть организован выход. Для этого используют оператор break, который будет рассмотрен несколько позже.
Пример 3.4: Вычислим сумму первых n целых положительных чисел.
#include <stdio.h>
#include <conio.h>
void main()
{
int n; // количество суммируемых чисел
int sum; // сумма
int i; // счетчик циклов
printf(“Вычисление суммы положительных чисел \n”);
printf(“введите количество суммируемых чисел \n”);
scanf(“%i”, &n);
sum = 0;
for (i =1; i <= n; i++)
sum + = i;
printf(“ Сумма первых % i целых положительных чисел \n”);
printf(“ равна % i”, sum);
printf(“ \n Для завершения нажмите <Enter>”);
getch();
}
Наиболее универсальным является оператор цикла while (пока). Оператор while имеет следующую форму:
while (выражение)
оператор;
Пока выражение в скобках (...) не равно нулю, повторяется выполнение оператора (простого или составного).
Пример 3.5:
/*Определение длины строки */
#include <stdio.h>
void main (void)
{
int dlina = 0;
puts (“ Введите строку, затем нажмите <Enter>”);
while (getchar ()!= ’\n’)
dlina ++;
printf (“\n Длина строки равна %d символам “, dlina);
}
Особенностью цикла while является то, что сначала проверяется значение выражения. Если оно равно нулю с самого начала, то цикл не выполнится ни разу, а управление будет передано следующему оператору. Это так называемый цикл с предусловием.
В Си используется также оператор цикла с постусловием do... while. Форма его записи следующая:
|
do
оператор;
while (выражение);
Сначала выполняется тело цикла (оператор), а затем вычисляется значение выражения. Если оно равно нулю (истинно), то тело цикла выполняется снова. Этот процесс повторяется до тех пор, пока значение выражения не станет равным нулю. После чего управление будет передано следующему оператору программы.
Разница между циклами, while и do... while заключается в том, что при использовании конструкции do... while цикл выполнится хотя бы один раз.
Замечание. Операторы цикла for, while, do...while могут завершаться досрочно при выполнении в их теле операторов break, go to и return.
Вложенные циклы. Когда один цикл находится внутри другого, то говорят, что это вложенные циклы. Вложенные циклы часто используются при заполнении таблиц, в матричных вычислениях, обработке массивов.
Оператор продолжения continue. Оператор продолжения передает управление на следующую итерацию в операторах for, while, do... while. Он может присутствовать только в теле этих операторов. Остающиеся в теле цикла операторы при этом не выполняются. В операторе for следующая операция начинается с вычисления выражения приращения, а затем происходит вычисление условного выражения. В операторах while и do... while следующая операция начинается с вычисления условных выражений.
Пример 3.6: Программа печатает натуральные числа, кратные 7.
#include <stdio.h>
main()
{
int i;
for (i = 1; i <1000; i++)
{
for (i % 7) continue; // Вложенный
printf (“%8d”, i) // цикл
}
}
|
|
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!