русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-01-16; просмотров: 593; Нарушение авторских прав


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

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

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

Рисунок 7– Алгоритм цикла с предусловием

 

В качестве примера использования оператора цикла рассмотрим программу вычисления факториала целого положительного числа N!.

Пример 1.

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

#include <stdio.h>

#include <conio.h>

void main()

{ long int F;

int i,N;

printf(“N=”);

scanf(“%d”,&N);

F=i=1;

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

printf(“\n %d \n%d”,N,F); getch(); }

Пример 2.Составить программу приближенного вычисления суммы бесконечного ряда S = 1 + x/1! + x2/2! + ...

Решение:

по условию задачи считается, что нужное приближение получено, если вычислена сумма нескольких первых слагаемых, и очередное слагаемое оказалось по модулю меньше, чем данное малое положительное число e.

Введем обозначения: EPS – малое положительное число, например, 0.003; S – сумма; i – переменная, последовательно принимающая значения 0, 1, 2, ...; Y – значение xi/i!, которое вычисляется путем умножения предыдущего результата на x/i.

 

Начало
abs(y)³eps  
i:=0, y:=1
вывод s
Конец
y:=y*x/i
да
нет
s:=s+y
i:=i+1
ввод x, eps

 


Рисунок 8 – Блок-схема алгоритма решения задачи из примера 2

 

Программа:

#include <stdio.h>

#include <conio.h>

void main()

{ int i=0; float x,y=1,eps,s=0;

printf (“Введите x, eps”);

scanf(“%f%f”,&x,&eps);

while (abs(y)>=eps) // начало цикла

{ s:=s+y;

i:=i+1;

y:=y*x/i;

} // конец цикла

printf("\n cумма s=%f”,s);

getch();

}



 

Результат выполнения программы:

Введите x, eps

2 0.003

Сумма S= 7.39

Пример 3. Найти натуральное число n, удовлетворяющее условию n3-n2=100, или вывести сообщение об отсутствии такого числа.

Решение:

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

Программа:

#include <stdio.h>

#include <conio.h>

void main()

{ int n=1;

while (pow(n,3)-pow(n,2) < 100)

n=n+1;

if (pow(n,3)-pow(n,2) = =100) printf(“\n n=%d”,n);

else printf(“\n такого числа нет”);

getch();}

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

while (1);

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

 

 



<== предыдущая лекция | следующая лекция ==>
Switch (целочисленное_выражение) | Вопрос 14. Цикл с постусловием


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.205 сек.