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

конец

да

нет


 

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

71835. Автоматическая мышь ищет выход из лабиринта 262.5 KB
  Переменные, которые могут принимать только два значения 0 и 1 называются логическими переменными (или просто переменными). Заметим, что логическая переменная х может подразумевать под числом 0 некоторое высказывание, которое ложно, и под числом 1 высказывание, которое истинно.
71836. Разработка схемы включения-выключения светильника 219 KB
  Разработать схему включения-выключения светильника, предусматривающую 3 независимых пункта управления. На каждом пункте установлен переключатель на два положения: перевод любого переключателя из одного положения в другое вызывает изменение состояния светильника.
71837. Денежно-кредитная система государства 143.5 KB
  Денежные и кредитные отношение приобрели особую роль в экономических процессах в начале двадцать первого века, когда стало вполне очевидным, что достижение оптимального уровня таких основных макроэкономических показателей, как прирост реального ВВП, уровень безработицы, уровень инфляции...
71838. Разработка алгоритма управления подвижной четырехколесной платформой 138 KB
  Простое логическое выражение состоит из одного высказывания и не содержит логические операции. Результатом операции НЕ является следующее: если исходное выражение истинно то результат его отрицания будет ложным; если исходное выражение ложно то результат его отрицания будет истинным.
71839. Алгоритм управления электродвигателем объекта 143 KB
  Разработать схему управления электрическим двигателем объекта, совершающего поступательное движение на рабочем участке. На границах рабочего участка движения установлены конечные выключатели, размыкающие при срабатывании цепь питания электродвигателя.
71842. Технико-экономическое обоснование информационной системы «Видеопрокат» 169.94 KB
  В данной курсовой работе будет проведена технико-экономическое обоснование информационной системы «Видеопрокат». Для этого будут рассчитаны следующие показатели: Планирование работы отдела; Рациональное использование производственной площади для работы...
71843. Проект производства работ 310.5 KB
  Проект производства работ на строительство 9-этажного панельного жилого дома, состоящего из двух секций разработан в соответствии с требованием СНиП 12-01-2004 «Организация строительства». Объемно-планировочные и конструктивные решения взяты из каталога.