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

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

Цикл с постусловием.





Занятие №5

Программирование циклов

В Си существуют все три типа операторов цикла: цикл с предусловием, цикл с постусловием и цикл с па­раметром.

Цикл с предусловием.

 

Формат оператора цикла с предусловием:

while (выражение) оператор;

Пример записи программы:

Пример №1

int a=0;

while (a<10)

{

a=(a+1)*2;

}

 

int x;

 

x = 50;

 

while (x > 0)

{

x = x - 1;

}

 

В даном примере тело цикла будет повторяться 50 раз, до тех пор пока переменная x будет больше нуля. На каждом шаге цикла x будет уменьшаться на 1. Когда x станет равным нулю, цикл прекратится.

Цикл повторяет свое выполнение, пока значение выражения от­лично от нуля, т. е. заключенное в нем условие цикла истинно.

В качестве примера использования оператора цикла рассмот­рим программу вычисления факториала целого положительного числа N!. Сопоставим программу решения этой задачи написан­ную на Паскале, с программой на Си.

Пример 2.

Программа на Паскале

Program Faktorial;

Var F: Longint; i,N:Integer;

Begin write (‘N’);

ReadLn(N);

F:=l; i:=l;

While i≤N Do

Begin

F:=F*i;i:=i+1 end;

WriteLn(N,’!=’,F)

End.

 

Программа на Си++

// Программа вычисле­ния факториала

#include <iostream.h>

void main ()

{ long int F;

int i,N;

cout<<"N="; cin>>N;

F=i=l;

while(i<=N) F=F*i++;

cout<<”\n"<<N<<"!="<<F;

}

Обратите внимание на операторы в теле цикла. Конечно, и в Си-программе можно было написать два оператора присваива­ния, объединив их фигурными скобками. Однако использован­ный способ записи более лаконичен и более характерен для Си. Этот же самый оператор можно было записать еще короче: F*=i++

При практическом использовании этой программы не следует забывать, что факториал — очень быстро растущая функция, и поэтому при определенных значениях N выйдет из диапазона, со­ответствующего типу long int. Задав для переменной F тип unsigned long, можно сдвинуть эту границу, но этого может оказаться недостаточно. Предлагаем в качестве самостоятельного задания исследовать предельные значения N для двух указанных типов переменной F.

Интересно свойство следующего оператора:

while(1);

Это бесконечный пустой цикл. Использование в качестве вы­ражения константы 1 приводит к тому, что условие повторения цикла все время остается истинным и работа цикла никогда не заканчивается. Тело в этом цикле представляет собой пустой опе­ратор. При исполнении такого оператора программа будет «топ­таться на месте».

Рассмотрим еще один пример использования оператора цикла while. Вернемся к задаче итерационного вычисления суммы гар­монического ряда: 1 + 1/2+1/3+... с заданной точностью е.

Пример №3

Программа на Си++

/ / Сумма

//гармонического ряда

#include <iostream.h>

#include <limits.h>

void main ()

{int n=l;

double S=0, eps;

cout<<” Точность: “;

cin>>eps;

while (1. 0/n>eps && n<INT_MAX) S+=1/n++;

cout<<”\n Сумма=”<<S;

}

Файл limits. h, подключаемый препроцессором, содержит оп­ределения предельных констант для целых типов данных. В част­ности, константа с именем int_max равна максимальному значе­нию типа int в данной реализации компилятора. Если для типа int используется двухбайтовое представление, то INT_MAX=32767. В этом же заголовочном файле определены и другие константы: INT_MIN=-32768; LONG_MAX=2147483647 И Т.Д.

Пример № 4

#include <stdio.h>

int main()

{ int i=0; // объявим целочисленный идентификатор и присваиваем ему значение ноль

while(i<5) // выполняем цикл while до тех пор пока i<5

{

printf("Hello, World!\n");

i++; //увеличиваем значение идентификатора i на единицу.

}

}

Цикл с постусловием.

Формат оператора цикла с постусловием:







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




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Кишечный шов (Ламбера, Альберта, Шмидена, Матешука) Кишечный шов– это способ соединения кишечной стенки. В основе кишечного шва лежит принцип футлярного строения кишечной стенки...

Принципы резекции желудка по типу Бильрот 1, Бильрот 2; операция Гофмейстера-Финстерера. Гастрэктомия Резекция желудка – удаление части желудка: а) дистальная – удаляют 2/3 желудка б) проксимальная – удаляют 95% желудка. Показания...

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

Шов первичный, первично отсроченный, вторичный (показания) В зависимости от времени и условий наложения выделяют швы: 1) первичные...

Предпосылки, условия и движущие силы психического развития Предпосылки –это факторы. Факторы психического развития –это ведущие детерминанты развития чел. К ним относят: среду...

Анализ микросреды предприятия Анализ микросреды направлен на анализ состояния тех со­ставляющих внешней среды, с которыми предприятие нахо­дится в непосредственном взаимодействии...

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