67975

Програмна реалізація алгоритмів циклічної структури

Практическая работа

Информатика, кибернетика и программирование

Цикл – оператор за допомогою якого деяку дію можна виконати кілька разів, залежно від деякої умови. Кожне повторення дії називається кроком циклу або ітерацією. Цикл складається з тіла циклу, тобто тих операторів, які виконуються кілька разів, початкових установок, модифікації параметра...

Украинкский

2014-09-16

162 KB

0 чел.

i: Практична робота №6 до лекції №16. 

Практична робота № 6

Програмна реалізація алгоритмів циклічної структури

Мета роботи -  ознайомитися з прийомами програмування обчислювального  циклічної структури.

Тими для попереднього опрацювання:

Реалізації обчислювальних процесів циклічної структури з використанням оператору циклу FOR.

Варіанти індивідуальних завдань.

Див. додаток 1.

Теоретична частина.

 Цикл – оператор за допомогою якого деяку дію можна виконати кілька разів, залежно від деякої умови. Кожне повторення дії  називається  кроком циклу або ітерацією.

Цикл складається з тіла циклу, тобто тих операторів, які виконуються кілька разів, початкових установок, модифікації параметра циклу і перевірки умови продовження виконання циклу. Цілочисельні параметри циклу,  що змінюються з постійним кроком на кожній ітерації, називаються  лічильником циклу.

Перевірка умови виконується на кожній ітерації. Якщо перевірка виконується  до тіла циклу,  тоді говорять про цикл з|із| передумовою, який може не виконатися жодного разу.

Цикл з предумовою

for|([початкові установки|];[умова];[кінці оператори|])

{

   оператор;

   оператор;

   ...

}


Приклад розв’язання завдання.

Приклад 2. Обчислити суму перших n членів ряду за формулою

                    , де  n змінюється від 0 до деякого значення, введеного з клавіатури .

Розробка алгоритму розв’язання.

Загальний метод розв’язання.

Процес підрахунку суми членів ряду має бути ітераційним: слід повторювати обчислення за однією і тією ж формулою при значеннях n=0, 1, 2, .. . Отримане значення слід додавати до змінної, яка представляє суму.

Алгоритм обчислення 2n  

Для цієї операції можна застосувати функцію  pow(x, y). Скористаємося  ефективнішим способом:

20 = 1

21 = 2 = 2 *20

22 = 4 = 2*21

23 = 8 = 2*22  и т.д.

Таким чином, на кожній ітерації циклу значення цього виразу удвічі більше, чим на попередній. Тому, виділимо окрему змінну для збереження значення 2n . Її початкове значення має бути 20 = 1. у кінці кожної ітерації воно повинне подвоюватися.

Алгоритм обчислення (- 1) n

В цьому випадку також недоцільно застосовувати функцію піднесення до ступеня.

Значення цього виразу буде 1 при парних значеннях n і - 1 - при непарних. Тому, можна виділити змінну для збереження значення цього виразу.

Її початкове значення має бути (-1)0 = 1, а у кінці кожної ітерації воно повинне міняти знак на протилежний.

Вхідні дані:

n - кількість членів ряду.

Вихідні дані:

sum - торба членів ряду.

Проміжні дані:

k2 - 2n  

k1 - (-1)n 

і – лічильник цикла.

Блок-схема алгоритму

         

Для реалізації алгоритму визначимося з діапазоном зміни значень :

n

Ціле число.

і

Ціле число. Проте,  результати виразів, в яких використовується і, матимуть дробову частину. Перетворення типів можна виконувати безпосередньо при обчисленні виразу, але щоб заздалегідь виключити помилки, введемо ще одну змінну - dbi, яка представлятиме значення n як числа з плаваючою точкою: double dbi;

sum

  double sum=0;

k2

""довге ціле": long long int.  Значення 2n може бути досить великим. Максимальне значення  n= 62. Для int n=30.

k1

""коротке ціле":  short k1=1;

Виведення результату.

Результат з фіксованою точкою, 7 знаків після коми.

Текст програми.

#include <iostream>

#include <windows.h>

#include <iomanip>

using namespace std;

void main()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

cout.setf(ios::fixed);

cout<<setprecision(7);

int n;

cin>>n;

double dbi, sum=0;

long long int k2=1;              // pow(2,n)

int k1=1;       // pow(-1,n)

for (int i=0; i<=n ; i++, k2*=2, k1=-k1)

{

   dbi=n;      

 sum+=k1*(dbi+1)/(dbi*dbi+k2);

 cout<<i<<"\t"<<sum<<"\t"<<k2<<endl;  // отладка

}

cout<<"\nПолная сумма "<<n<<" членов ряда равна "<<sum<<endl;  

 

cout<<endl;

system("pause");

}     

 Результат.

5

0       0.2307692       1

1       0.0085470       2

2       0.2154436       4

3       0.0336254       8

4       0.1799668       16

5       0.0747037       32

Полная сумма 5 членов ряда равна 0.0747037


Індивідуальні  завдання

Варіант 1

Варіант 2

Варіант 3

Варіант 4

Варіант 5

Варіант 6

Варіант 7

Варіант 8

Варіант 9

Варіант 10

Варіант 11

Варіант 12

Варіант 13

Варіант 14

Варіант 15

Варіант 16

Варіант 17

Варіант 18

Варіант 19

Варіант 20

Варіант 21

Варіант 22

Варіант 23

Варіант 24

Варіант 25

Варіант 26

Варіант 27

PAGE  1

FILENAME \p C:\TEXNICUM_2012\CI_2012\Lesson_C_11_Mathematics_Function\Lab\C_03_Function_Math_LAB_L11_Metodichka_ukr.doc  DATE \@ "M/d/yyyy" 11/25/2012


Начало

sum=0; i=0;

k1=1; k2=1

i <=n ?

sum=sum+k1* EMBED Equation.3  

k1= - k1;

k2=2*k2;

i=i+1

Печать sum

конец

да

нет


 

А также другие работы, которые могут Вас заинтересовать

5445. Спадкові хвороби людини 47 KB
  Спадкові хвороби людини 1. Класифікація складових хвороб людини. 2. Хромосомні хвороби,спричинені порушенням кількості або структури хромосом 3. Моногенні (молекулярні) спадкові захворювання 1. Спадкові захворювання з\'являються внаслідок ...
5446. Оценка технико-экономических показателей ремонтно-механического цеха 231.5 KB
  Введение Рыночная экономика в современных условиях предъявляет высокие требования к организации производства и труда на промышленных предприятиях. При этом основным путем к повышению производительности труда на предприятиях отечественного машиностро...
5447. Модное слово 21 века 46.5 KB
  Модное слово 21 века То, что в языке, как и в любой среде, существует своя мода - давно не новость. Она меняется с течением времени. Немалое значение оказывает на нее, развитие новых технологий, изменения в политике, бизнесе, производстве, кул...
5448. Сравнение двух вариантов заготовки детали Вас шестерня 3.73 MB
  Введение В рамках дипломного проекта будет рассматриваться деталь Вал-шестерня. Для детали будет проведён анализ технологичности, который позволит оценить её технологичность, т.е. возможность рациональной обработки с помощью стандартных инструмент...
5449. Расчет гелиоустановки для летней душевой полевого бригадного стана, расположенного в Аргаяшском районе Челябинской области 150.04 KB
  Расчет гелиоустановки. Расчет гелиоустановки выполняем для летней душевой полевого бригадного стана, расположенного в Аргаяшском районе Челябинской области. Гелиоустановка рассчитана на работу с 15 апреля по 15 октября. Потребное количество энергии ...
5450. Разработка системы технического обслуживания секции поперечной фальцовки комбинированной фальцевальной машины 1.58 MB
  Курсовой проект посвящен разработка системы технического обслуживания секции поперечной фальцовки комбинированной фальцевальной машины. В приложении приведена спецификация на сборочные чертежи. Отечественные типографии зачастую должны самостоятельно...
5451. Расчет перемешивающего устройства и подбор мотора к нему 60.5 KB
  Задание: Подобрать перемешивающее устройство, провести его расчет и подобрать к нему мотор-редуктор по исходным данным. Исходные данные: Номинальный объём реактора Vн = 5м3 Давление в реакторе Р= 0,6 МПа Плотность жидкой фазы ...
5452. Расчет требуемой поверхности фильтрации 110 KB
  Задание: Рассчитать требуемую поверхность фильтрации на заданную производительность по водной суспензии, выбрать стандартный фильтр и определить их количество в установке. Исходные данные: Производительность по суспензии Vисх = 114 м3/сут. Концентра...
5453. История развития лизинга в России 50 KB
  История развития лизинга в России Первым и наиболее заметным фактом участия СССР в лизинговых сделках стали известные поставки на условиях ленд-лиза. Во время II Мировой войны США поставляло своим союзникам оружие, продовольствие, автомобильную те...