Студопедия — Оператор WHILE
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Оператор WHILE






В языке Си основной структурой, управляющей повторением, служит цикл с предусловием while(пока). Он имеет следующий формат while (условие) оператор; Условие всегда заключено в скобки, оно может быть произвольным выражением. Опрератор while повторяет выполнение оператора следующего условия, до тех пор, пока это условие истинно. Если это условие не истинно с самого начала или становится не истинным в процессе выполнения данного опрератора, то управление передается оператору, следующему за опрератором цикла. Если повторяемая часть оператора содержит более одного оператора, то повторяемая группа операторов должна быть заключена в фигурные скобки скобки, например:
while(условие) { оператор_1; оператор_2;.... оператор }

Для описания условий в операторе while используются операции условия такие же, как и в операторе if. Приведенная ниже программа подсчитывает сумму цифр введенного числа N. Цикл while последовательно выделяет и суммирует цифру исходного числа, начиная с последней; для для выделения применяется операция взятия остатка от деления - %. При делении целых чисел любая дробная чать отбрасывается, поэтому после операции N=N/10; исходное число уменьшается в 10 раз при каждом "обороте" цикла, пока, наконец, не станет равным нулю, после чего цикл завершается и на экран дисплея выдается значение переменной S, в котором содержится сумма цифр числа N.

Пример 1.6

#include <stdio.h> main() { int N,S,Z; S=0; printf("ВВЕДИ N\n"); scanf("%d",&N) while(N!=0) { Z=N%10 N=N/10 S=S+Z; } printf("СУММА ЦИФР=%d\n",S); }

Рассмотрим еще один пример. Здесь приведена программа, которая реализует лгоритм разложения числа на простые множители. Для сокращения времени счета отдельно рассматривается случай множителя, равного двум, чтобы в последующем рассматривать только нечетные множители.

Пример 1.7

/*РАЗЛОЖИТЬ ЧИСЛО НА МНОЖИТЕЛИ */ #include <stdio.h> main() { int M,i=3; printf("ВВЕДИ M\n"); scanf("%d",&M); printf("%d=1",M); while(M%2==0) { printf("*%d",2); M=M/2; } while(i <=M) { if(M%i==0) { printf("*%d",i); M=M/i; } else i=i+2 } }

Иногда структуры со вложенными друг в друга операторами повторения называюися циклами. Следующяя программа простая, хотя и содержит вложенные циклы. Она выводит на экран заполненный символом * треугольник, высота которого равна N.
Во внешнем цикле устанавливается очередная строка вывода (параметр i), а во внутреннем (параметр j) в очередную строку вводится ровно i символов " * " Вызов функции printf("\n") обеспечивает в нужный момент переход нат новую строку. Обратите внимание, что для вывода одного символа в форматной строке функции printf используется спецификация %c.

Пример 1.8

#include <stdio.h> main() { int i,j,N; printf("ВВЕДИ N \n"); scanf("%d",&N); i=1; while(i <=N) { j=1; while(j <=i) { printf("%c",'*'); j=j+1; } i=i+1; printf("\n"); } }

Рассмотрим еще один пример, в котором используется сложный цикл. Программа позволяет найти в заданном интервале все совершенные числа. Напомним, что натуральное число называютя совершенным, если оно равно сумме всех своих делителей, считая его самого. Известно, что все совершенные числа - четные и что первое совершенное чсило из натурального ряда чисел равно 6. Этим объясняется начальное значение параметра внешнего цикла. Так как все натуральные числа имеют своим делителем единицу, полагаем начальное значение суммы делителей числа S=1. Во внутренннем цикле организуется перебор всех множителей текущего значения N. Из теории чисел известно, что такому испытанию имеет подвергать числа от 2 до N/2, либо даже до корень из N. Это очень несовершенный алгоритм и если вы захотите его выполнить на ЭВМ, имейте ввиду, что программа работает слишком долго. Более эффективно алгоритм будет реализован попозже.

Пример 1.9

#include <stdio.h> main() { int j,N,M,S; printf("ВВЕДИ M\n"); scanf("%d",&M); N=4; while(N<=M) { S=1;j=2; while(j<=N/2) { if(N%j==0) S=S+j; j=j+1; } if(N==S) printf("%d- СОВЕРШЕННОЕ ЧИСЛО\n",N); N=N+2; } }






Дата добавления: 2015-08-12; просмотров: 339. Нарушение авторских прав; Мы поможем в написании вашей работы!



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

В эволюции растений и животных. Цель: выявить ароморфозы и идиоадаптации у растений Цель: выявить ароморфозы и идиоадаптации у растений. Оборудование: гербарные растения, чучела хордовых (рыб, земноводных, птиц, пресмыкающихся, млекопитающих), коллекции насекомых, влажные препараты паразитических червей, мох, хвощ, папоротник...

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

Экспертная оценка как метод психологического исследования Экспертная оценка – диагностический метод измерения, с помощью которого качественные особенности психических явлений получают свое числовое выражение в форме количественных оценок...

В теории государства и права выделяют два пути возникновения государства: восточный и западный Восточный путь возникновения государства представляет собой плавный переход, перерастание первобытного общества в государство...

Закон Гука при растяжении и сжатии   Напряжения и деформации при растяжении и сжатии связаны между собой зависимостью, которая называется законом Гука, по имени установившего этот закон английского физика Роберта Гука в 1678 году...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия