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

конец

да

нет


 

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

75350. Особенности социально-экономического и политического развития Испании в V-XI веках 51.5 KB
  Особенности социальноэкономического и политического развития Испании в VXI вв. Вандалы переправились далее в Северную Африку вестготы и свевы остались в Испании которая была в конце V в. Оно занимало кроме Испании всю Южную Галлию до Луары на севере Бискайского залива йа западе Средиземного моря и реки Роны на юговостоке. В вестготской Испании начали развиваться феодальные отношения.
75351. Англия в V-XI веках 62 KB
  Завоевание Британии англосаксами После того как римские войска в начале V в. были выведены из Британии населённой бриттами кельтами на её территорию стали массами вторгаться германские племена саксованглов и ютов жившие между Эльбой и Рейном область расселения саксов и на Ютландском полуострове область расселения англов и ютов. Англосаксонское завоевание Британии продолжалось свыше 150 лет и закончилось в основном в начале VII в. Столь длительный характер завоевания объясняется прежде всего тем что кельтское население Британии...
75352. Германия в X-XI веках 42 KB
  В состав Германии входили следующие герцогства из которых каждое было заселено определённым германским племенем так называемые племенные герцогства: Саксония и Тюрингия между притоками Рейна и Эльбой; Франкония по реке Майну и среднему течению Рейна; Швабия по верхнему течению Дуная и Рейна а также его притока Неккара и Бавария по среднему течению Дуная я его притоков к востоку от реки Лех. К...
75353. Крестовые походы. Их причины, предпосылки, социальный состав и цели участников. Первый крестовый поход 61.5 KB
  Папа указал и на земные выгоды ожидающие крестоносцев на Востоке. Не ожидая подхода основных сил рыцарейкрестоносцев бедняки устремились вперед. Путь крестоносцев через византийские владения сопровождался повальным грабежом местного населения. Император Алексей 1 опасаясь нашествия крестоносцев которых утонченная верхушка византийского общества не без основания считала варварами старался воспрепятствовать объединению их ополчений в Константинополе.
75354. Особенности социально-экономического и политического развития Италии в XI-XIII вв. Причины незавершенности политической централизации Италии 44 KB
  Особенности социально-экономического и политического развития Италии в XI-XIII вв. Причины незавершенности политической централизации Италии. Государственная самостоятельность которую получили многие города Северной и Центральной Италии к концу XII в. коммуны с консульским правлением сложились в десятках городов Северной и Центральной Италии в Падуе Ферраре Кремоне Генуе Пизе Сьене Болонье и многих других.
75355. Особенности социально-экономического и политического развития Италии в XIII-XV веках 61 KB
  Завоевание Южной Италии и Сицилии норманнами. многие города Южной Италии и Сицилии добились от феодальных сеньоров вольностей участия представителей горожан в органах судебно-административной власти. Южной Италии и Сицилии норманнами норманнский правитель рожер II образовал Сицилийское королевство объединив в нем Южную Италию и Сицилию При норманнах в Южной Италии и на Сицилии завершился процесс складывания феодальных отношений.
75356. Конкурентоспроможність потенціалу підприємства 312 KB
  Конкурентоспроможність потенціалу підприємства та її рівні. Класифікація методів оцінки конкурентоспроможності потенціалу підприємства. Прикладні моделі оцінки конкурентоспроможності потенціалу підприємства. Методи оцінки конкурентоспроможності потенціалу підприємства в зарубіжній практиці.
75357. Структура і графоаналітична модель потенціалу підприємства 119 KB
  Під структурою системи, якою є потенціал підприємства, розуміють мережу найбільш суттєвих, стійких (інваріантних) звязків між елементами. На думку М.Ф. Овчинникова, структура представляє собою «інваріантний» аспект системи. В.И.Кремянський також звертає увагу на те, що структура виражає не усю сукупність звязків обєкту
75358. ФОРМУВАННЯ ПОТЕНЦІАЛУ ПІДПРИЄМСТВА 374.5 KB
  Методичні та організаційноекономічні засади формування потенціалу підприємств Формування потенціалу підприємства це процес ідентифікації та створення спектру підприємницьких можливостей його структуризації та побудови певних організаційних форм задля стабільного розвитку та ефективного відтворення. Розглянемо більш детально що представляє собою процес формування потенціалу підприємства. Властивості економічної системи Властивості економічних систем дозволяють виокремити загальні...