Текст программы задачи 1.1. Цикл с параметром




Program summa_2; {использование цикла с предусловием}

#include <stdio.h>

int main(){

int Sum=0, a,b,i;

printf("\n Вычисление суммы натуральных чисел заданного диапазона \n");

printf("\n Введите начало диапазона a= ");

scanf("%d", &a);

printf("\n Введите конец диапазона b= ");

scanf("%d", &b);

i=a;

while (i <= b) Sum+=I++;

printf("\n Сумма чисел от %d до %d равна %d",a,b,Sum);

return 0;

}

 

Вариант 3. Цикл с постусловием (do - while)

Метод решения задачи остается неизменным. Опять меняем вид цикла, отвечающего за повторение действий. Схема алгоритма приведена на рис. 1.3.

 


 

 
 

Рис. 1.3 Схема алгоритма задачи 1. Цикл с постусловием


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

 

Пример 1.2. Вычисление интеграла методом прямоугольников

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

Постановка задачи

Исходными данными для решения этой задачи являются пределы интегрирования a и b- действительные числа, количество интервалов разбиения n – натуральное число. Значения a, b и n вводятся с клавиатуры. Кроме того, должна быть задана подынтегральная функция f(x). Вид f(x) определяется формулой в тексте программы.

Выходные данные

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

Метод решения

Значение определенного интеграла численно равно площади подынтегральной фигуры, образованной графиком функции (см. рис. 1.4). С помощью метода прямоугольников значение интеграла вычисляется приближенно. При этом площадь подынтегральной фигуры представляется в виде суммы площадей Si небольших прямоугольников, на которые мы разбиваем эту фигуру. Ширина всех прямоугольников одинаковая и равна h. Для определения h делим отрезок от a до b на заданное количество интервалов

h=(b-a)/n (1.2)

Высота прямоугольника равна значению функции f(xi) в точке деления xi.

 

 
 

 

Приближенное значение интеграла вычисляется по следующей формуле:

(1.3)

 

 

где xi=x0+ih, h – шаг интегрирования. Очевидно, что чем меньше шаг интегрирования (т.е. больше число интервалов разбиения n), тем точнее будет вычислено значение интеграла.

Схема алгоритма решения задачи приведена на рис. 1.5.

 

 
 

 

Рис. 1.5 Схема алгоритма задачи 2

 


Текст программы

Пусть требуется вычислить следующий интеграл:

(1.4)

Тогда программа приближенного вычисления интеграла выглядит следующим образом:

#include <stdio.h>

#include <math.h>

int main(){

float a, b, x, y=0., h;

int n,i;

printf("\n Вычисление интеграл методом прямоугольников \n");

printf("Введите пределы интегрирования\n a= ");

scanf("%f", &a);

printf("b= "); scanf("%f", &b);

printf("\n Количество интервалов разбиения n=");

scanf("%d",&n);

//вычисления

h=(b-a)/n;

x=a;

for (i=1; i<=n; i++)

{y+=log(2+sin(x));

x+=h;

}

y*=h;

//Вывод результата

printf("\nЗначение интеграла %f\n", y);

return 0; }

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

Можно написать цикл for в этой задаче и, не используя счетчик i. Тогда фрагмент вычислений будет выглядеть следующим образом, а соответствующая ему схема алгоритма приведена на рис. 1.6:

 

//вычисления

h=(b-a)/n;

for (x=a; x<b; x+=h)

y+=log(2+sin(x));

y*=h;

 


 

Рис. 1.6 Схема алгоритма задачи 2 без счетчика интервалов разбиения

 
 

 

Теперь перейдем к рассмотрению задач, в которых количество повторений действий в теле цикла заранее не известно.

Для решения таких задач чаще всего используют циклы с предусловием и с постусловием.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: