Реалізація алгоритмів з розгалуженнями в мові С++

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Основи програмування
Група:
ПІ

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Інститут ІКНІ Кафедра ПЗ ЗВІТ До лабораторної роботи № 4 На тему: «Реалізація алгоритмів з розгалуженнями в мові С++» З дисципліни: «Основи Програмування» Лектор: Доцент каф. ПЗ Макар В.М. Тема роботи: Реалізація алгоритмів з розгалуженнями в мові С++ Мета роботи: Навчитися програмувати на мові С++ розгалужені обчислювальні процеси. Теоретичні відомості Алгоритм – це зрозумілі й точні вказівки виконавцю (комп’ютеру) здійснити певну послідовність дій (обчислювальних операцій) для розв’язання поставленої задачі. Розрізняють такі форми запису алгоритмів: словесний запис алгоритму (розмовна мова); псевдокод (структурно-стилізована мова); блок-схема (мова графічних символів); комп’ютерна програма (мова програмування високого рівня). В теорії алгоритмів доведено, що будь-який алгоритм може бути побудований з використанням всього лише трьох базових конструкцій, а саме з конструкцій слідування, розгалуження та повторення На блок – схемах використовують такі блоки: Блок виконання дій Логічний блок Блок модифікації Блок виклику функції Блок з’єднання Блок початку/кінця Оператор if виконує певну дію, якщо умова вибору є істинною, і пропускає виконання цієї дії, якщо умова є хибною. Синтаксичний опис оператора умови з одиничним вибором такий: if (<умова>) <оператор>; Спочатку обчислюється <умова>, яка синтаксично задається у вигляді виразу,результатом виконання якого є або ненульове значення (означає, що умова є істинною або умова виконується), або значення 0 (означає, що умова є хибною або умова не виконується).. Таким чином, виконання оператора if полягає в наступному: якщо <умова> є істинною, то виконується <оператор>, якщо <умова> є хибною, то оператор заданий після умови виконуватися не буде, а програма продовжить своє виконання з наступного після if оператора. Вкладені структури if/else, які дозволяють реалізувати розгалуження обчислювального процесу більше ніж у двох напрямках. Тут слід пам’ятати, що кожне службове слово else відноситься до першого перед ним слова if. Трактування умови в операторі if як звичайного виразу, дозволяє створювати в С++ умови виконання, які не обов’язково повинні містити операції, що за своєю логікою виконання завжди дають лише два можливих значення, як наприклад, операції порівняння. Ці операції, як відомо,дають результат 1, якщо відношення, задане операцією порівняння дійсно має місце, і результат 0 у протилежному випадку. c=a/100;b=a%10; cout<< (c==b ? "yes" : "Not"); За правилами мови С++ <оператор1> та <оператор2> мають бути структурно одним єдиним оператором. Якщо користувачеві необхідно виконати в цих місцях кілька операторів, то їх треба взяти в операторні дужки { }, тобто зробити ці декілька операторів складеним оператором. Складений оператор вживається у програмі завжди, якщо за синтаксисом мови С++ наступний оператор може бути тільки єдиним, а користувачеві потрібно виконати певну послідовність операторів. Мова С++ має також умовну операцію ?:, яка є схожою на структуру if/else. Ця умовна операція є єдиною тернарною операцією, тобто такою, що має три операнда. Ці операнди разом з самою умовною операцією утворюють умовний вираз, який має такий вигляд: <умова> ? <вираз1> : <вираз2>. Тут, перший операнд є умовою, другий операнд містить значення умовного виразу в тому випадку, якщо умова є істинною, а третій операнд рівний значенню умовного виразу, якщо умова є хибною Іншим типом операцій в мові С++, які завжди мають результат типу ‘істина’/’не істина’ є логічні операції. Цих операцій в С++ є три: операція логічного множення && (логічне І), операція логічного додавання || (логічне АБО) та операція логічного заперечення ! (логічне НЕ). Логіка операції логічного заперечення така: !0=1 та !1=0.За допомогою логічних операцій та операцій порівняння можна утворювати складні вирази для запису умови в операторі if/else. Наприклад, перевірка чи значення змінної x лежить в діапазоні від а до b може бути задана у вигляді такої умови: (x>=a && x<=b) Оператор switch виконується так. Спочатку обчислюється значення виразу switch__expression. Тип значення повинен бути одним із цілих - char, int, unsigned int, long int і long unsigned. Обчислене значення зрівнюється зі значеннями констант вибору або константних виразів constant1, ... ,constantN.При спів падінні значення switch_expression із constanti виконується оператор statementi. Потім керування передається на оператор відразу після switch, якщо в i-й гілці є присутнім оператор break (оператор break здійснює негайний вихід з оператора switch). У протилежному випадку виконуються оператори в гілках i+1, i+2 і так далі доти, поки в них не зустрінеться оператор break або не буде виконаний оператор statement N+1. Якщо значення switch_expression не збіглося з жодною з констант constanti,... , constantN, виконується оператор у гілці, позначеній default. При її відсутності виконується наступний після switch оператор. Для зміни послідовного виконання операторів використовується оператор безумовного переходу. Індивідуальне завдання За заданим натуральним восьмизначним числом знаходить подвоєний добуток ненульових цифр цього числа та кількість нулів. Код програми #include<iostream> #include<conio.h> #include<math.h> void main() { using namespace std; setlocale(LC_ALL, "rus"); int a,b,c,n=0,d,suma,e,x,f,z,p; vvid : cout<<"Введiть цiле натуральне восьмизначне число \n"; cin>>a; if(a<1000000) cout<<"Число введено не вiрно \n"; if(a>1) b=a%100000000/10000000; c=a%10000000/1000000; if(c= =0) {n=n+1;c=1;} d=a%1000000/100000; if(d= =0) {n=n+1;d=1;} e=a%100000/10000; if(e= =0) {n=n+1;e=1;} x=a%10000/1000; if(x= =0) {n=n+1;x=1;} f=a%1000/100; if(f= =0) {n=n+1;f=1;} z=a%100/10; if(z= =0) {n=n+1;z=1;} p=a%10; if(p= =0) {n=n+1;p=1;} suma = 2*b*c*d*e*x*f*z*p; cout<<"Нулiв "<<n<<endl; cout<<"Подвоєний добуток "<<suma<<endl; _getch(); } Протокол роботи Ні Так Так Ні Так Ні Так Ні Так Ні Так Так Ні Так Ні Так Ні / Висновок Ми навчилися програмувати на мові С++ розгалужені обчислювальні процеси.
Антиботан аватар за замовчуванням

10.03.2015 11:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!