русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

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


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Вихідні дані.


Дата додавання: 2013-12-23; переглядів: 1743.


Програма повинна виводити суму чисел, тому потрібна змінна цілого типу|типа| (адже всі елементи послідовності цілі числа).

 

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

Потрібно задати початкове значення суми чисел, а потім багато разів обчислювати|обчисляти| черговий елемент послідовності і додавати|добавляти| його до раніше знайденої суми. Обчислення|підрахунки| закінчуються, коли черговий елемент послідовності стане більше кількості елементів послідовності.

 

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

#include| <iostream|.h>

int| main|(){

int| N;

int| sum| = 0, i = 1;

cout<<”Введите| коичество элементов: ”;

cin>>N|;

while| (i<=| N) {

sum| = sum| + i;

i = i + 1;

}

cout<<"sum| = "<<sum<<endl|;

return| 0;

}

 

На початку програми виділяється пам'ять під змінні:

1. число доданків: int N;

2. початкові значення суми і першого доданку. При цьому їм відразу привласнюються початкові значення (ініціалізація): int sum = 0; i = 1;

Сума обчислюється за допомогою циклу whi1e{}. Виконання циклу починається з перевірки умови, що стоїть в круглих дужках. Якщо воно істинне, то виконується тіло циклу, поміщене у фігурні дужки. Не будь цих дужок, в циклі виконувалася б тільки інструкція, що відразу стоїть за while : sum = sum + i .

У нашому циклі спочатку перевіряється умова i <= N (i менше або рівне N), і оскільки у цей момент i дорівнює 1, а N=1000|, воно виконується, а значить, до змінної sum| додається одиниця sum| = sum| + i, потім збільшується змінна i (i = i + 1), і ми знов|знову| переходимо до перевірки умови i <= N, але|та| тепер уже i дорівнює 2, а N — як і раніше 1000. Значить, умова знову виконується, і цикл здійснює|скоює| свій другий оборот|зворот|, додаючи до змінної sum| двійку і знов|знову| збільшуючи змінну i (вона стає рівною трьом).

Легко зрозуміти, що востаннє умова i <= N виконається, коли змінна i дорівнюватиме 1000. На цьому останньому обороті|звороті| циклу до змінної sum| додасться 1000, потім i збільшиться на 1 і знову почнеться|розпочинатиме| перевірка умови i <= N. Цього разу умова не виконається, тому що|бо| змінна i вже дорівнює 1001, програма пропустить тіло циклу і перейде до наступної|слідуючої| інструкції, що виводить на екран значення суми:

cout<<"sum| = "<<sum<<endl|;

Відмітимо|помітимо|, що цю програму, досить легко пристосувати для підсумовування будь-якої кількості чисел. Потрібно тільки|лише| поміняти значення N. Програмісти не повинні писати «одноразові» програми.

Цю програму можна записати і таким чином:

#include| <iostream|.h>

int| main|() {

int| N = 1000;

int| sum| = 0, i = 1;

while| (i <= N) {

sum| += i;

i++|;

}

cout<<"sum="<<sum<<endl|;

}

Інструкція sum += i; замінює інструкцію sum = sum + i, а інструкція i++; діє так само, як i = i + 1;.

Можна записати цикл і таким чином:

while| while| (i <= N) sum| += i++|;

Вона виконує те, що потрібний, тобто додає до змінної sum поточне значення i, а потім збільшує i на одиницю. Тобто, до sum спочатку додасться 1, потім значення i збільшується на 1 тобто ставати =2 і так до 1000, коли i стане рівною 1001, умова i <= N в циклі while{ не виконається, і програма перейде до наступної інструкції, яка виведе на екран суму чисел, і її робота на цьому завершиться. Але так буде лише у тому випадку, коли оператор автозбільшення стоїть праворуч від змінної i. Тільки тоді збільшення i відбувається після збільшення i до змінної sum. Але оператор ++ може стояти і зліва від змінної i, і тоді в інструкції sum += ++i; i збільшиться до підсумовування.

Тобто, при вході в цикл while{ змінна i дорівнюватиме 1, потім i збільшиться на 1, ставши рівною 2, і вже двійка додасться до змінної sum. Останнім доданим числом буде 1001, тому що на самому початку циклу i дорівнюватиме 1000 (умова i <= N виконається), потім до i спочатку додасться одиниця, і тільки потім i буде додана до змінної sum. Значить, наш цикл складе всі числа від 2 до 1001, тобто зробить не зовсім те, що від нього чекали.

 

Завдання 2. Спробуйте підсумувати цілі числа від 1 200 000 000. Що при цьому виходить, чому?

 

Завдання 3.Спробуйте перед while() привласнити змінній i значення –1. Скільки разів виконуватиметься цикл при такому значенні i?

 

Узагальнення:

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

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

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

 

 

Загальний|спільний| синтаксис конструкції while|:

while|(вираз|вираження|){ дія для повторення;}

Використання інтегрованого відладчика Microsoft| Visual| Studio|.

1. Виконання програми по кроках.

Припустимо|передбачатимемо|, що ми збираємося проаналізувати наступний|слідуючий| код:

 

 

Послідовність дій:

1. Створіть проект і наберіть код.

2. Скомпілюйте його і переконаєтеся, що немає синтаксичних помилок.

3. Натисніть|натискуйте| на клавішу F10|. Поряд з|поряд із| першим виконуваним рядком коди у вас на екрані з'явиться|появлятиметься| жовта стрілка: саме вона указує|вказує|, який рядок коди зараз "виконується".

 

4. Для переходу на наступний рядок Натисніть|натискуйте| F10|.

 

 

Внизу екрану у вас розташовується набір вкладок для аналіз змінних:

 

 

 

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

 

Watch| - призначена для тих випадків, коли необхідно самому вибрати змінну для перегляду|проглядати|. У полі Name| впишіть назву змінною і вона відображається|відображує| незалежно від виконуваної коди.

5. Тепер просто натискаючи|натискувати| F10|, "пройдіться" за кодом і подивитеся|поглянете|, як змінюватимуться дані у вкладках.

Примітка: Якщо ви хочете зупинити відладчик раніше, ніж завершитися аналіз коди натисніть поєднання клавіш Shift+F5

Примітка: Якщо ви хочете запустити роботу відладчика з певного рядка програми - встановите курсор в необхідний рядок і натисніть поєднання клавіш Сtrl+f10

Точка останову.

Нехай нам необхідно виконати відрізок коду і зупинившись|зупинятися| у визначеному місці, запустити відладчик.

.

1. Додайте в код рядок cout<<i;

2. Натисніть клавішу F9. Поряд з рядком з'явилася точка останову - червона крапка.

3. Натисніть|натискуйте| F5|, програма запуститься, виконається до того моменту, де встановлен|установлена|а точка останову і перейде в режим отладчика

 

Звернете увагу на стан|достаток| консолі (вікна програми). Тут відображається|відображує| все, що встигло|устигало| відбутися:

 

 

 

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

Крім того, заглядайте у вікно консолі, всі зміни відбуваютьс|походять|я в коді відображатимутьс|відображуватимуть|я і там.

Ще раз натисніть F9і точка останову зникне.


Завдання 2. Написати програму, яка друкує таблицю значень функції у = -х2+1 у введеному діапазоні змінній х із заданим кроком. Якщо значення х>10, виводитися ціле значення у.

Вхідні дані:

1. Початкове значення аргументу хn|;

2. кінцеве|скінченне| значення аргументу хk|;

3. крок зміни dx|;

4. аргумент х;

Загальний|спільний| алгоритм рішення|розв'язання|.

 

У словесній формі алгоритм можна сформулювати так:

1. Ввести|запроваджувати| початкові|вихідні| дані.

2. Узяти перше із|із| значень аргументу.

3. Обчислити|обчисляти| значення функції по відповідній формулі.

4. Якщо х > 10, перетворити значення в ціле.

5. Вивести рядок таблиці.

6. Перейти до наступного|такого| значення аргументу.

7. Якщо воно не перевищує кінцеве|скінченне| значення, повторити кроки 3-6, інакше закінчити виконання.

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

 

#include <iostream.h>

#include <windows.h>

#include <iomanip.h>

int main(){

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

int poz=20;

cout.setf(ios::fixed ); //вывод значений с фиксированной точкой

float xn, xk, dx;

cout<<"Введите xn, xk, dx: "; //нач.значение, кон.значение и шаг

cin>>xn>>xk>>dx;

float x=xn, y;

cout<<setw(20)<<"X"<<setw(20)<<"Y"<<endl;

while (x <= xk){

y=-x*x+1;

if(x>10)cout<<setw(20)<<x<<setprecision(0)<<setw(20)<<y<<endl; else{

cout<<setprecision(2);

cout<<setw(20)<<x<<setw(20)<<y<<endl;

}

x += dx;

}

return 0;

}

Домашнє|хатнє| завдання|задавання|.

1. Написати програму, що виводить на екран лінію з|із| 5 зірочок з використанням оператора циклу з|із| передумовою.

2. Розробити програму, яка виводить на екран лінію з|із| символів. Число символів, якій використовувати символ, і яка буде лінія - вертикальна, або горизонтальна - вказує користувач.

3. Написати програму, яка знаходить|находить| суму всіх цілих непарних чисел в діапазоні, вказаному користувачем.

4. Дано натуральне число n. Написати програму, яка обчислює|обчисляє| факторіал додатніх цілих чисел (n > 0). Формула обчислення|підрахунку| факторіалу приведена нижче.

 

n!= 1*2*3*....*n, (формула обчислення факторіалу числа n)

0!= 1 (факторіал 0 рівний 1 (за визначенням факторіалу)

 


<== попередня лекція | наступна лекція ==>
Працюючи в C++, для позначення тексту, що виводиться на екран, ви завжди повинні використовувати лапки. | Функція – це послідовність інструкцій, яку можна розглядати як групу окремих команд. Кожна функція має свої ім’я. Функція може бути виконана за допомогою виклику функції.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн