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

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

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






Занятие №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; просмотров: 397. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

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

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

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

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