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

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

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





Занятие №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Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


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

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

Способы тактических действий при проведении специальных операций Специальные операции проводятся с применением следующих основных тактических способов действий: охрана...

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